farvist 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +324 -0
- package/assets/farvist.js +187 -0
- package/assets/icons/farvist-icons.svg +49 -0
- package/assets/logo.svg +11 -0
- package/assets/og-image.svg +34 -0
- package/assets/patterns/blob.svg +9 -0
- package/assets/patterns/dots.svg +3 -0
- package/assets/patterns/grid.svg +3 -0
- package/assets/patterns/mesh.svg +20 -0
- package/dist/farvist.css +8967 -0
- package/dist/farvist.min.css +1 -0
- package/package.json +53 -0
- package/scss/abstracts/_functions.scss +85 -0
- package/scss/abstracts/_index.scss +9 -0
- package/scss/abstracts/_mixins.scss +78 -0
- package/scss/abstracts/_variables.scss +252 -0
- package/scss/base/_reset.scss +120 -0
- package/scss/base/_root.scss +87 -0
- package/scss/base/_typography.scss +102 -0
- package/scss/components/_accordion.scss +64 -0
- package/scss/components/_alerts.scss +63 -0
- package/scss/components/_avatar.scss +76 -0
- package/scss/components/_badges.scss +54 -0
- package/scss/components/_breadcrumb.scss +44 -0
- package/scss/components/_buttons.scss +163 -0
- package/scss/components/_callout.scss +37 -0
- package/scss/components/_cards.scss +74 -0
- package/scss/components/_chip.scss +61 -0
- package/scss/components/_dropdown.scss +90 -0
- package/scss/components/_empty-state.scss +37 -0
- package/scss/components/_forms.scss +125 -0
- package/scss/components/_icon.scss +25 -0
- package/scss/components/_list-group.scss +60 -0
- package/scss/components/_modal.scss +95 -0
- package/scss/components/_navbar.scss +67 -0
- package/scss/components/_pagination.scss +51 -0
- package/scss/components/_progress.scss +60 -0
- package/scss/components/_range.scss +58 -0
- package/scss/components/_rating.scss +26 -0
- package/scss/components/_segmented.scss +51 -0
- package/scss/components/_skeleton.scss +52 -0
- package/scss/components/_spinner.scss +60 -0
- package/scss/components/_stat.scss +32 -0
- package/scss/components/_stepper.scss +78 -0
- package/scss/components/_switch.scss +65 -0
- package/scss/components/_table.scss +51 -0
- package/scss/components/_tabs.scss +64 -0
- package/scss/components/_timeline.scss +77 -0
- package/scss/components/_toast.scss +79 -0
- package/scss/components/_tooltip.scss +45 -0
- package/scss/farvist.scss +60 -0
- package/scss/layout/_grid.scss +83 -0
- package/scss/utilities/_backgrounds.scss +110 -0
- package/scss/utilities/_effects.scss +118 -0
- package/scss/utilities/_spacing.scss +76 -0
- package/scss/utilities/_utilities.scss +213 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{color-scheme:dark;--fv-primary: #6d4af5;--fv-secondary: #7c8aa5;--fv-success: #34d399;--fv-danger: #fb5b78;--fv-warning: #fbbf24;--fv-info: #22d3ee;--fv-accent: #e879f9;--fv-light: #e7ecf5;--fv-dark: #0b0f1d;--fv-gray-100: #f1f5f9;--fv-gray-200: #e2e8f0;--fv-gray-300: #cbd5e1;--fv-gray-400: #94a3b8;--fv-gray-500: #64748b;--fv-gray-600: #475569;--fv-gray-700: #334155;--fv-gray-800: #1e293b;--fv-gray-900: #0f172a;--fv-white: #ffffff;--fv-black: #000000;--fv-body-bg: #060912;--fv-bg-gradient: radial-gradient(48rem 48rem at 82% -12%, rgba(109, 74, 245, 0.28), transparent 60%), radial-gradient(36rem 36rem at -8% 18%, rgba(34, 211, 238, 0.2), transparent 58%), radial-gradient(40rem 40rem at 50% 118%, rgba(232, 121, 249, 0.18), transparent 58%);--fv-body-color: #e6ebf5;--fv-muted: #95a3c4;--fv-border-color: rgba(255, 255, 255, 0.1);--fv-code-bg: rgba(255, 255, 255, 0.07);--fv-bg-pattern: rgba(255, 255, 255, 0.10);--fv-glass-bg: rgba(255, 255, 255, 0.06);--fv-glass-bg-strong: rgba(255, 255, 255, 0.1);--fv-glass-border: rgba(255, 255, 255, 0.14);--fv-glass-blur: 16px;--fv-glass-saturate: 140%;--fv-surface-solid: #121a2e;--fv-font-base: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;--fv-font-mono: ui-monospace, SFMono-Regular, SF Mono, JetBrains Mono, Menlo, Consolas, Liberation Mono, monospace;--fv-line-height: 1.6;--fv-border-radius: 0.75rem;--fv-border-width: 1px;--fv-transition: 0.2s ease;--fv-focus-ring: 0 0 0 3px rgba(109, 74, 245, 0.45);--fv-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);--fv-shadow-md: 0 8px 20px rgba(0, 0, 0, 0.35);--fv-shadow-lg: 0 18px 44px rgba(0, 0, 0, 0.45);--fv-shadow-xl: 0 30px 70px rgba(0, 0, 0, 0.55);--fv-glow-primary: 0 0 26px rgba(109, 74, 245, 0.55);--fv-glow-accent: 0 0 26px rgba(232, 121, 249, 0.55);--fv-glow-info: 0 0 26px rgba(34, 211, 238, 0.55);--fv-glow-success: 0 0 26px rgba(52, 211, 153, 0.5);--fv-glow-danger: 0 0 26px rgba(251, 91, 120, 0.5);--fv-glow-warning: 0 0 26px rgba(251, 191, 36, 0.5);--fv-gradient-primary: linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%);--fv-gradient-accent: linear-gradient(135deg, #e879f9 0%, #6d4af5 100%);--fv-gradient-sunset: linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%);--fv-gradient-aurora: linear-gradient(135deg, #34d399 0%, #22d3ee 100%)}:root[data-theme=light],[data-theme=light]{color-scheme:light;--fv-body-bg: #eef1f8;--fv-bg-gradient: radial-gradient(48rem 48rem at 82% -12%, rgba(109, 74, 245, 0.18), transparent 60%), radial-gradient(36rem 36rem at -8% 18%, rgba(34, 211, 238, 0.16), transparent 58%), radial-gradient(40rem 40rem at 50% 118%, rgba(232, 121, 249, 0.14), transparent 58%);--fv-body-color: #0f172a;--fv-muted: #586b8f;--fv-border-color: rgba(15, 23, 42, 0.12);--fv-code-bg: rgba(15, 23, 42, 0.06);--fv-bg-pattern: rgba(15, 23, 42, 0.10);--fv-glass-bg: rgba(255, 255, 255, 0.55);--fv-glass-bg-strong: rgba(255, 255, 255, 0.7);--fv-glass-border: rgba(255, 255, 255, 0.8);--fv-surface-solid: #ffffff}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;scroll-behavior:smooth}body{min-height:100vh;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:1rem;line-height:1.6;color:var(--fv-body-color);background-color:var(--fv-body-bg);background-image:var(--fv-bg-gradient);background-attachment:fixed;background-repeat:no-repeat;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .2s ease,color .2s ease}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{list-style:none;padding:0}a{color:#6d4af5;text-decoration:none}a:hover{text-decoration:underline}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid #6d4af5;outline-offset:2px}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}h1,.h1{margin-bottom:.75rem;font-size:2.25rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}h2,.h2{margin-bottom:.75rem;font-size:1.875rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}h3,.h3{margin-bottom:.75rem;font-size:1.5rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}h4,.h4{margin-bottom:.75rem;font-size:1.25rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}h5,.h5{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}h6,.h6{margin-bottom:.75rem;font-size:1rem;font-weight:700;line-height:1.15;letter-spacing:-0.01em}p{margin-bottom:1rem}a{transition:color .2s ease}small,.text-small{font-size:.875rem}strong,b{font-weight:600}code,pre,kbd,samp{font-family:ui-monospace,SFMono-Regular,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace}code{padding:.2em .45em;font-size:.875em;color:var(--fv-info);background-color:var(--fv-code-bg);border:1px solid var(--fv-border-color);border-radius:.375rem}pre{padding:1rem;margin-bottom:1rem;overflow:auto;font-size:.875rem;background-color:var(--fv-code-bg);border:1px solid var(--fv-border-color);border-radius:.625rem}pre code{padding:0;color:inherit;background:none;border:0}kbd{padding:.15em .45em;font-size:.85em;color:var(--fv-body-color);background-color:var(--fv-code-bg);border:1px solid var(--fv-border-color);border-radius:.375rem}blockquote{padding-left:1rem;margin-bottom:1rem;color:var(--fv-muted);border-left:3px solid var(--fv-primary)}hr{height:0;margin:1.5rem 0;border:0;border-top:1px solid var(--fv-border-color)}ul,ol{margin-bottom:1rem;padding-left:1.5rem}.container,.container-fluid{width:100%;margin-inline:auto;padding-inline:.75rem}@media(min-width: 576px){.container{max-width:540px}}@media(min-width: 768px){.container{max-width:720px}}@media(min-width: 992px){.container{max-width:960px}}@media(min-width: 1200px){.container{max-width:1140px}}@media(min-width: 1400px){.container{max-width:1320px}}.row{display:flex;flex-wrap:wrap;margin-inline:-0.75rem}.row>*{width:100%;max-width:100%;padding-inline:.75rem}.col{flex:1 0 0%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.3333333333%}.col-2{flex:0 0 auto;width:16.6666666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333333333%}.col-5{flex:0 0 auto;width:41.6666666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.3333333333%}.col-8{flex:0 0 auto;width:66.6666666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333333333%}.col-11{flex:0 0 auto;width:91.6666666667%}.col-12{flex:0 0 auto;width:100%}.offset-0{margin-left:0}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media(min-width: 576px){.col-sm-1{flex:0 0 auto;width:8.3333333333%}.col-sm-2{flex:0 0 auto;width:16.6666666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.3333333333%}.col-sm-5{flex:0 0 auto;width:41.6666666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.3333333333%}.col-sm-8{flex:0 0 auto;width:66.6666666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.3333333333%}.col-sm-11{flex:0 0 auto;width:91.6666666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media(min-width: 768px){.col-md-1{flex:0 0 auto;width:8.3333333333%}.col-md-2{flex:0 0 auto;width:16.6666666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333333333%}.col-md-5{flex:0 0 auto;width:41.6666666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333333333%}.col-md-8{flex:0 0 auto;width:66.6666666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333333333%}.col-md-11{flex:0 0 auto;width:91.6666666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media(min-width: 992px){.col-lg-1{flex:0 0 auto;width:8.3333333333%}.col-lg-2{flex:0 0 auto;width:16.6666666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333333333%}.col-lg-5{flex:0 0 auto;width:41.6666666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.3333333333%}.col-lg-8{flex:0 0 auto;width:66.6666666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333333333%}.col-lg-11{flex:0 0 auto;width:91.6666666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media(min-width: 1200px){.col-xl-1{flex:0 0 auto;width:8.3333333333%}.col-xl-2{flex:0 0 auto;width:16.6666666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.3333333333%}.col-xl-5{flex:0 0 auto;width:41.6666666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.3333333333%}.col-xl-8{flex:0 0 auto;width:66.6666666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.3333333333%}.col-xl-11{flex:0 0 auto;width:91.6666666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}@media(min-width: 1400px){.col-xxl-1{flex:0 0 auto;width:8.3333333333%}.col-xxl-2{flex:0 0 auto;width:16.6666666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.3333333333%}.col-xxl-5{flex:0 0 auto;width:41.6666666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.3333333333%}.col-xxl-8{flex:0 0 auto;width:66.6666666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.3333333333%}.col-xxl-11{flex:0 0 auto;width:91.6666666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.3333333333%}.offset-xxl-2{margin-left:16.6666666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.3333333333%}.offset-xxl-5{margin-left:41.6666666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.3333333333%}.offset-xxl-8{margin-left:66.6666666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.3333333333%}.offset-xxl-11{margin-left:91.6666666667%}}.g-0{gap:0}.gx-0{column-gap:0}.gy-0{row-gap:0}.g-1{gap:.25rem}.gx-1{column-gap:.25rem}.gy-1{row-gap:.25rem}.g-2{gap:.5rem}.gx-2{column-gap:.5rem}.gy-2{row-gap:.5rem}.g-3{gap:.75rem}.gx-3{column-gap:.75rem}.gy-3{row-gap:.75rem}.g-4{gap:1rem}.gx-4{column-gap:1rem}.gy-4{row-gap:1rem}.g-5{gap:1.5rem}.gx-5{column-gap:1.5rem}.gy-5{row-gap:1.5rem}.g-6{gap:2rem}.gx-6{column-gap:2rem}.gy-6{row-gap:2rem}.g-7{gap:3rem}.gx-7{column-gap:3rem}.gy-7{row-gap:3rem}.g-8{gap:4rem}.gx-8{column-gap:4rem}.gy-8{row-gap:4rem}.btn{--fv-btn-bg: transparent;--fv-btn-color: var(--fv-body-color);--fv-btn-border: var(--fv-glass-border);--fv-btn-hover-bg: var(--fv-glass-bg-strong);--fv-btn-hover-border: var(--fv-glass-border);--fv-btn-active-bg: var(--fv-glass-bg);--fv-btn-focus-ring: rgba(109, 74, 245, 0.45);--fv-btn-glow: none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-size:1rem;font-weight:600;line-height:1.6;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;color:var(--fv-btn-color);background-color:var(--fv-btn-bg);border:1px solid var(--fv-btn-border);border-radius:var(--fv-border-radius);transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.btn:hover{color:var(--fv-btn-color);background-color:var(--fv-btn-hover-bg);border-color:var(--fv-btn-hover-border);box-shadow:var(--fv-btn-glow);text-decoration:none;transform:translateY(-1px)}.btn:active{background-color:var(--fv-btn-active-bg);transform:translateY(0)}.btn:focus-visible{outline:0;box-shadow:0 0 0 3px var(--fv-btn-focus-ring)}.btn:disabled,.btn.disabled{opacity:.5;box-shadow:none;transform:none;pointer-events:none}.btn-primary{--fv-btn-bg: #6d4af5;--fv-btn-color: #ffffff;--fv-btn-border: #6d4af5;--fv-btn-hover-bg: rgb(120.68, 88.48, 245.8);--fv-btn-hover-border: rgb(126.52, 95.72, 246.2);--fv-btn-active-bg: rgb(84.6157068063, 43.7701570681, 243.3298429319);--fv-btn-focus-ring: rgba(109, 74, 245, 0.45);--fv-btn-glow: 0 0 24px rgba(109, 74, 245, 0.55)}.btn-secondary{--fv-btn-bg: #7c8aa5;--fv-btn-color: #0b0f1d;--fv-btn-border: #7c8aa5;--fv-btn-hover-bg: rgb(134.48, 147.36, 172.2);--fv-btn-hover-border: rgb(139.72, 152.04, 175.8);--fv-btn-active-bg: rgb(106.8692307692, 122.7, 153.2307692308);--fv-btn-focus-ring: rgba(124, 138, 165, 0.45);--fv-btn-glow: 0 0 24px rgba(124, 138, 165, 0.55)}.btn-success{--fv-btn-bg: #34d399;--fv-btn-color: #0b0f1d;--fv-btn-border: #34d399;--fv-btn-hover-bg: rgb(68.24, 214.52, 161.16);--fv-btn-hover-border: rgb(76.36, 216.28, 165.24);--fv-btn-active-bg: rgb(42.1651821862, 194.5348178138, 138.9534412955);--fv-btn-focus-ring: rgba(52, 211, 153, 0.45);--fv-btn-glow: 0 0 24px rgba(52, 211, 153, 0.55)}.btn-danger{--fv-btn-bg: #fb5b78;--fv-btn-color: #0b0f1d;--fv-btn-border: #fb5b78;--fv-btn-hover-bg: rgb(251.32, 104.12, 130.8);--fv-btn-hover-border: rgb(251.48, 110.68, 136.2);--fv-btn-active-bg: rgb(250.1857142857, 57.6142857143, 92.5178571429);--fv-btn-focus-ring: rgba(251, 91, 120, 0.45);--fv-btn-glow: 0 0 24px rgba(251, 91, 120, 0.55)}.btn-warning{--fv-btn-bg: #fbbf24;--fv-btn-color: #0b0f1d;--fv-btn-border: #fbbf24;--fv-btn-hover-bg: rgb(251.32, 196.12, 53.52);--fv-btn-hover-border: rgb(251.48, 198.68, 62.28);--fv-btn-active-bg: rgb(250.4852017937, 182.7632286996, 7.8147982063);--fv-btn-focus-ring: rgba(251, 191, 36, 0.45);--fv-btn-glow: 0 0 24px rgba(251, 191, 36, 0.55)}.btn-info{--fv-btn-bg: #22d3ee;--fv-btn-color: #0b0f1d;--fv-btn-border: #22d3ee;--fv-btn-hover-bg: rgb(51.68, 214.52, 239.36);--fv-btn-hover-border: rgb(60.52, 216.28, 240.04);--fv-btn-active-bg: rgb(17.4857142857, 199.5428571429, 227.3142857143);--fv-btn-focus-ring: rgba(34, 211, 238, 0.45);--fv-btn-glow: 0 0 24px rgba(34, 211, 238, 0.55)}.btn-accent{--fv-btn-bg: #e879f9;--fv-btn-color: #0b0f1d;--fv-btn-border: #e879f9;--fv-btn-hover-bg: rgb(233.84, 131.72, 249.48);--fv-btn-hover-border: rgb(234.76, 137.08, 249.72);--fv-btn-active-bg: rgb(225.9214285714, 85.5857142857, 247.4142857143);--fv-btn-focus-ring: rgba(232, 121, 249, 0.45);--fv-btn-glow: 0 0 24px rgba(232, 121, 249, 0.55)}.btn-light{--fv-btn-bg: #e7ecf5;--fv-btn-color: #0b0f1d;--fv-btn-border: #e7ecf5;--fv-btn-hover-bg: rgb(232.92, 237.52, 245.8);--fv-btn-hover-border: rgb(233.88, 238.28, 246.2);--fv-btn-active-bg: rgb(197.4, 209.4, 231);--fv-btn-focus-ring: rgba(231, 236, 245, 0.45);--fv-btn-glow: 0 0 24px rgba(231, 236, 245, 0.55)}.btn-dark{--fv-btn-bg: #0b0f1d;--fv-btn-color: #ffffff;--fv-btn-border: #0b0f1d;--fv-btn-hover-bg: rgb(21.34, 29.1, 56.26);--fv-btn-hover-border: rgb(26.51, 36.15, 69.89);--fv-btn-active-bg: rgb(9.9, 13.5, 26.1);--fv-btn-focus-ring: rgba(11, 15, 29, 0.45);--fv-btn-glow: 0 0 24px rgba(11, 15, 29, 0.55)}.btn-outline-primary{--fv-btn-bg: transparent;--fv-btn-color: #6d4af5;--fv-btn-border: #6d4af5;--fv-btn-hover-bg: #6d4af5;--fv-btn-hover-border: #6d4af5;--fv-btn-active-bg: rgb(84.6157068063, 43.7701570681, 243.3298429319);--fv-btn-focus-ring: rgba(109, 74, 245, 0.45);--fv-btn-glow: 0 0 24px rgba(109, 74, 245, 0.5)}.btn-outline-primary:hover{--fv-btn-color: #ffffff}.btn-outline-secondary{--fv-btn-bg: transparent;--fv-btn-color: #7c8aa5;--fv-btn-border: #7c8aa5;--fv-btn-hover-bg: #7c8aa5;--fv-btn-hover-border: #7c8aa5;--fv-btn-active-bg: rgb(106.8692307692, 122.7, 153.2307692308);--fv-btn-focus-ring: rgba(124, 138, 165, 0.45);--fv-btn-glow: 0 0 24px rgba(124, 138, 165, 0.5)}.btn-outline-secondary:hover{--fv-btn-color: #0b0f1d}.btn-outline-success{--fv-btn-bg: transparent;--fv-btn-color: #34d399;--fv-btn-border: #34d399;--fv-btn-hover-bg: #34d399;--fv-btn-hover-border: #34d399;--fv-btn-active-bg: rgb(42.1651821862, 194.5348178138, 138.9534412955);--fv-btn-focus-ring: rgba(52, 211, 153, 0.45);--fv-btn-glow: 0 0 24px rgba(52, 211, 153, 0.5)}.btn-outline-success:hover{--fv-btn-color: #0b0f1d}.btn-outline-danger{--fv-btn-bg: transparent;--fv-btn-color: #fb5b78;--fv-btn-border: #fb5b78;--fv-btn-hover-bg: #fb5b78;--fv-btn-hover-border: #fb5b78;--fv-btn-active-bg: rgb(250.1857142857, 57.6142857143, 92.5178571429);--fv-btn-focus-ring: rgba(251, 91, 120, 0.45);--fv-btn-glow: 0 0 24px rgba(251, 91, 120, 0.5)}.btn-outline-danger:hover{--fv-btn-color: #0b0f1d}.btn-outline-warning{--fv-btn-bg: transparent;--fv-btn-color: #fbbf24;--fv-btn-border: #fbbf24;--fv-btn-hover-bg: #fbbf24;--fv-btn-hover-border: #fbbf24;--fv-btn-active-bg: rgb(250.4852017937, 182.7632286996, 7.8147982063);--fv-btn-focus-ring: rgba(251, 191, 36, 0.45);--fv-btn-glow: 0 0 24px rgba(251, 191, 36, 0.5)}.btn-outline-warning:hover{--fv-btn-color: #0b0f1d}.btn-outline-info{--fv-btn-bg: transparent;--fv-btn-color: #22d3ee;--fv-btn-border: #22d3ee;--fv-btn-hover-bg: #22d3ee;--fv-btn-hover-border: #22d3ee;--fv-btn-active-bg: rgb(17.4857142857, 199.5428571429, 227.3142857143);--fv-btn-focus-ring: rgba(34, 211, 238, 0.45);--fv-btn-glow: 0 0 24px rgba(34, 211, 238, 0.5)}.btn-outline-info:hover{--fv-btn-color: #0b0f1d}.btn-outline-accent{--fv-btn-bg: transparent;--fv-btn-color: #e879f9;--fv-btn-border: #e879f9;--fv-btn-hover-bg: #e879f9;--fv-btn-hover-border: #e879f9;--fv-btn-active-bg: rgb(225.9214285714, 85.5857142857, 247.4142857143);--fv-btn-focus-ring: rgba(232, 121, 249, 0.45);--fv-btn-glow: 0 0 24px rgba(232, 121, 249, 0.5)}.btn-outline-accent:hover{--fv-btn-color: #0b0f1d}.btn-outline-light{--fv-btn-bg: transparent;--fv-btn-color: #e7ecf5;--fv-btn-border: #e7ecf5;--fv-btn-hover-bg: #e7ecf5;--fv-btn-hover-border: #e7ecf5;--fv-btn-active-bg: rgb(197.4, 209.4, 231);--fv-btn-focus-ring: rgba(231, 236, 245, 0.45);--fv-btn-glow: 0 0 24px rgba(231, 236, 245, 0.5)}.btn-outline-light:hover{--fv-btn-color: #0b0f1d}.btn-outline-dark{--fv-btn-bg: transparent;--fv-btn-color: #0b0f1d;--fv-btn-border: #0b0f1d;--fv-btn-hover-bg: #0b0f1d;--fv-btn-hover-border: #0b0f1d;--fv-btn-active-bg: rgb(9.9, 13.5, 26.1);--fv-btn-focus-ring: rgba(11, 15, 29, 0.45);--fv-btn-glow: 0 0 24px rgba(11, 15, 29, 0.5)}.btn-outline-dark:hover{--fv-btn-color: #ffffff}.btn-gradient-primary{--fv-btn-color: #ffffff;--fv-btn-border: transparent;--fv-btn-hover-bg: transparent;--fv-btn-active-bg: transparent;--fv-btn-glow: var(--fv-glow-primary);color:var(--fv-btn-color);background-image:linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%);border-color:rgba(0,0,0,0)}.btn-gradient-primary:hover{filter:brightness(1.08)}.btn-gradient-accent{--fv-btn-color: #ffffff;--fv-btn-border: transparent;--fv-btn-hover-bg: transparent;--fv-btn-active-bg: transparent;--fv-btn-glow: var(--fv-glow-primary);color:var(--fv-btn-color);background-image:linear-gradient(135deg, #e879f9 0%, #6d4af5 100%);border-color:rgba(0,0,0,0)}.btn-gradient-accent:hover{filter:brightness(1.08)}.btn-gradient-sunset{--fv-btn-color: #ffffff;--fv-btn-border: transparent;--fv-btn-hover-bg: transparent;--fv-btn-active-bg: transparent;--fv-btn-glow: var(--fv-glow-primary);color:var(--fv-btn-color);background-image:linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%);border-color:rgba(0,0,0,0)}.btn-gradient-sunset:hover{filter:brightness(1.08)}.btn-gradient-aurora{--fv-btn-color: #ffffff;--fv-btn-border: transparent;--fv-btn-hover-bg: transparent;--fv-btn-active-bg: transparent;--fv-btn-glow: var(--fv-glow-primary);color:var(--fv-btn-color);background-image:linear-gradient(135deg, #34d399 0%, #22d3ee 100%);border-color:rgba(0,0,0,0)}.btn-gradient-aurora:hover{filter:brightness(1.08)}.btn-glass{background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);--fv-btn-color: var(--fv-body-color);box-shadow:none}.btn-glass:hover{background-color:var(--fv-glass-bg-strong);border-color:var(--fv-glass-border)}.btn-link{--fv-btn-bg: transparent;--fv-btn-border: transparent;--fv-btn-color: var(--fv-primary);--fv-btn-hover-bg: transparent;--fv-btn-hover-border: transparent;--fv-btn-active-bg: transparent;--fv-btn-glow: none}.btn-link:hover{text-decoration:underline}.btn-sm{padding:.25rem .75rem;font-size:.875rem}.btn-lg{padding:.75rem 2rem;font-size:1.125rem}.btn-block{display:flex;width:100%}.badge{display:inline-flex;align-items:center;padding:.35em .65em;font-size:.75em;font-weight:600;line-height:1;text-align:center;white-space:nowrap;color:#fff;background-color:#7c8aa5;border:1px solid rgba(0,0,0,0);border-radius:.375rem}.badge-primary{color:#fff;background-color:#6d4af5}.badge-secondary{color:#0b0f1d;background-color:#7c8aa5}.badge-success{color:#0b0f1d;background-color:#34d399}.badge-danger{color:#0b0f1d;background-color:#fb5b78}.badge-warning{color:#0b0f1d;background-color:#fbbf24}.badge-info{color:#0b0f1d;background-color:#22d3ee}.badge-accent{color:#0b0f1d;background-color:#e879f9}.badge-light{color:#0b0f1d;background-color:#e7ecf5}.badge-dark{color:#fff;background-color:#0b0f1d}.badge-soft-primary{color:rgb(174.7,155.45,249.5);background-color:rgba(109,74,245,.16);border-color:rgba(109,74,245,.35)}.badge-soft-secondary{color:rgb(182.95,190.65,205.5);background-color:rgba(124,138,165,.16);border-color:rgba(124,138,165,.35)}.badge-soft-success{color:rgb(143.35,230.8,198.9);background-color:rgba(52,211,153,.16);border-color:rgba(52,211,153,.35)}.badge-soft-danger{color:rgb(252.8,164.8,180.75);background-color:rgba(251,91,120,.16);border-color:rgba(251,91,120,.35)}.badge-soft-warning{color:rgb(252.8,219.8,134.55);background-color:rgba(251,191,36,.16);border-color:rgba(251,191,36,.35)}.badge-soft-info{color:rgb(133.45,230.8,245.65);background-color:rgba(34,211,238,.16);border-color:rgba(34,211,238,.35)}.badge-soft-accent{color:rgb(242.35,181.3,251.7);background-color:rgba(232,121,249,.16);border-color:rgba(232,121,249,.35)}.badge-soft-light{color:rgb(241.8,244.55,249.5);background-color:rgba(231,236,245,.16);border-color:rgba(231,236,245,.35)}.badge-soft-dark{color:rgb(120.8,123,130.7);background-color:rgba(11,15,29,.16);border-color:rgba(11,15,29,.35)}[data-theme=light] .badge-soft-primary{color:rgb(47.9,40.85,113.05)}[data-theme=light] .badge-soft-secondary{color:rgb(53.15,63.25,85.05)}[data-theme=light] .badge-soft-success{color:rgb(27.95,88.8,80.85)}[data-theme=light] .badge-soft-danger{color:rgb(97.6,46.8,69.3)}[data-theme=light] .badge-soft-warning{color:rgb(97.6,81.8,39.9)}[data-theme=light] .badge-soft-info{color:rgb(21.65,88.8,110.6)}[data-theme=light] .badge-soft-accent{color:rgb(90.95,57.3,114.45)}[data-theme=light] .badge-soft-light{color:rgb(90.6,97.55,113.05)}[data-theme=light] .badge-soft-dark{color:rgb(13.6,20.2,37.45)}.badge-pill{border-radius:50rem}.alert{position:relative;color:var(--fv-body-color);padding:1rem 1.5rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.875rem;backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate))}.alert-heading{margin-bottom:.5rem;font-weight:700}.alert>:last-child{margin-bottom:0}.alert-primary{background-color:rgba(109,74,245,.13);border-color:rgba(109,74,245,.42);border-left:3px solid #6d4af5}.alert-primary .alert-heading{color:#6d4af5}.alert-primary .alert-link{color:#6d4af5;font-weight:600;text-decoration:underline}.alert-secondary{background-color:rgba(124,138,165,.13);border-color:rgba(124,138,165,.42);border-left:3px solid #7c8aa5}.alert-secondary .alert-heading{color:#7c8aa5}.alert-secondary .alert-link{color:#7c8aa5;font-weight:600;text-decoration:underline}.alert-success{background-color:rgba(52,211,153,.13);border-color:rgba(52,211,153,.42);border-left:3px solid #34d399}.alert-success .alert-heading{color:#34d399}.alert-success .alert-link{color:#34d399;font-weight:600;text-decoration:underline}.alert-danger{background-color:rgba(251,91,120,.13);border-color:rgba(251,91,120,.42);border-left:3px solid #fb5b78}.alert-danger .alert-heading{color:#fb5b78}.alert-danger .alert-link{color:#fb5b78;font-weight:600;text-decoration:underline}.alert-warning{background-color:rgba(251,191,36,.13);border-color:rgba(251,191,36,.42);border-left:3px solid #fbbf24}.alert-warning .alert-heading{color:#fbbf24}.alert-warning .alert-link{color:#fbbf24;font-weight:600;text-decoration:underline}.alert-info{background-color:rgba(34,211,238,.13);border-color:rgba(34,211,238,.42);border-left:3px solid #22d3ee}.alert-info .alert-heading{color:#22d3ee}.alert-info .alert-link{color:#22d3ee;font-weight:600;text-decoration:underline}.alert-accent{background-color:rgba(232,121,249,.13);border-color:rgba(232,121,249,.42);border-left:3px solid #e879f9}.alert-accent .alert-heading{color:#e879f9}.alert-accent .alert-link{color:#e879f9;font-weight:600;text-decoration:underline}.alert-light{background-color:rgba(231,236,245,.13);border-color:rgba(231,236,245,.42);border-left:3px solid #e7ecf5}.alert-light .alert-heading{color:#e7ecf5}.alert-light .alert-link{color:#e7ecf5;font-weight:600;text-decoration:underline}.alert-dark{background-color:rgba(11,15,29,.13);border-color:rgba(11,15,29,.42);border-left:3px solid #0b0f1d}.alert-dark .alert-heading{color:#0b0f1d}.alert-dark .alert-link{color:#0b0f1d;font-weight:600;text-decoration:underline}[data-theme=light] .alert-primary .alert-heading,[data-theme=light] .alert-primary .alert-link{color:rgb(47.9,40.85,113.05)}[data-theme=light] .alert-secondary .alert-heading,[data-theme=light] .alert-secondary .alert-link{color:rgb(53.15,63.25,85.05)}[data-theme=light] .alert-success .alert-heading,[data-theme=light] .alert-success .alert-link{color:rgb(27.95,88.8,80.85)}[data-theme=light] .alert-danger .alert-heading,[data-theme=light] .alert-danger .alert-link{color:rgb(97.6,46.8,69.3)}[data-theme=light] .alert-warning .alert-heading,[data-theme=light] .alert-warning .alert-link{color:rgb(97.6,81.8,39.9)}[data-theme=light] .alert-info .alert-heading,[data-theme=light] .alert-info .alert-link{color:rgb(21.65,88.8,110.6)}[data-theme=light] .alert-accent .alert-heading,[data-theme=light] .alert-accent .alert-link{color:rgb(90.95,57.3,114.45)}[data-theme=light] .alert-light .alert-heading,[data-theme=light] .alert-light .alert-link{color:rgb(90.6,97.55,113.05)}[data-theme=light] .alert-dark .alert-heading,[data-theme=light] .alert-dark .alert-link{color:rgb(13.6,20.2,37.45)}.card{display:flex;flex-direction:column;min-width:0;border-radius:1.125rem;overflow:hidden;background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card-solid{background-color:var(--fv-surface-solid);backdrop-filter:none;-webkit-backdrop-filter:none}.card-glow:hover{transform:translateY(-4px);border-color:rgba(109,74,245,.5);box-shadow:var(--fv-shadow-xl),var(--fv-glow-primary)}.card-body{flex:1 1 auto;padding:1.5rem}.card-title{margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.card-subtitle{margin-bottom:.75rem;color:var(--fv-muted)}.card-text{color:var(--fv-muted)}.card-text:last-child{margin-bottom:0}.card-header{padding:1rem 1.5rem;font-weight:600;background-color:var(--fv-glass-bg);border-bottom:1px solid var(--fv-glass-border)}.card-footer{padding:1rem 1.5rem;background-color:var(--fv-glass-bg);border-top:1px solid var(--fv-glass-border)}.card-img-top{width:100%;object-fit:cover}.form-label{display:inline-block;margin-bottom:.5rem;font-weight:500}.form-control,.form-select{display:block;width:100%;padding:.5rem .75rem;font-size:1rem;line-height:1.6;color:var(--fv-body-color);background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);border-radius:var(--fv-border-radius);transition:border-color .2s ease,box-shadow .2s ease}.form-control::placeholder,.form-select::placeholder{color:var(--fv-muted);opacity:.8}.form-control:focus,.form-select:focus{outline:0;border-color:var(--fv-primary);box-shadow:var(--fv-focus-ring)}.form-control:disabled,.form-select:disabled{opacity:.55;cursor:not-allowed}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2395a3c4' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:3rem}textarea.form-control{min-height:6rem;resize:vertical}.form-text{margin-top:.25rem;font-size:.875rem;color:var(--fv-muted)}.form-check{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.form-check-input{width:1rem;height:1rem;accent-color:var(--fv-primary);cursor:pointer}.form-check-label{cursor:pointer}.input-group{display:flex;align-items:stretch}.input-group .form-control{flex:1 1 auto;width:1%;min-width:0}.input-group-text{display:flex;align-items:center;padding:.5rem .75rem;color:var(--fv-muted);background-color:var(--fv-glass-bg-strong);border:1px solid var(--fv-glass-border)}.is-valid{border-color:var(--fv-success) !important}.is-invalid{border-color:var(--fv-danger) !important}.valid-feedback{margin-top:.25rem;font-size:.875rem;color:var(--fv-success)}.invalid-feedback{margin-top:.25rem;font-size:.875rem;color:var(--fv-danger)}.navbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background-color:var(--fv-glass-bg);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);border-top:0;border-right:0;border-left:0;border-radius:0;box-shadow:var(--fv-shadow-md)}.navbar-brand{display:inline-flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;letter-spacing:-0.02em;color:var(--fv-body-color);text-decoration:none}.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;align-items:center;gap:.25rem;margin-left:auto;margin-bottom:0;padding-left:0;list-style:none}.nav-link{display:block;padding:.5rem .75rem;color:var(--fv-muted);border-radius:.625rem;text-decoration:none;transition:color .2s ease,background-color .2s ease}.nav-link:hover{color:var(--fv-body-color);background-color:var(--fv-glass-bg);text-decoration:none}.nav-link.active{color:var(--fv-body-color);font-weight:600;background-color:var(--fv-glass-bg)}.icon{display:inline-block;width:1em;height:1em;vertical-align:-0.125em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-sm{width:.85em;height:.85em}.icon-lg{width:1.5em;height:1.5em}.icon-xl{width:2em;height:2em}.table{width:100%;border-collapse:collapse;color:var(--fv-body-color)}.table th,.table td{padding:.75rem 1rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--fv-border-color)}.table thead th{font-size:.875rem;font-weight:600;color:var(--fv-muted);text-transform:uppercase;letter-spacing:.04em}.table tbody tr{transition:background-color .2s ease}.table tbody tr:last-child td{border-bottom:0}.table-hover tbody tr:hover{background-color:var(--fv-glass-bg)}.table-striped tbody tr:nth-child(odd){background-color:var(--fv-glass-bg)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.5rem;height:2.5rem;font-weight:600;color:var(--fv-body-color);background-color:var(--fv-glass-bg-strong);border:1px solid var(--fv-glass-border);border-radius:50%;overflow:hidden;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:1.75rem;height:1.75rem;font-size:.875rem}.avatar-lg{width:3.5rem;height:3.5rem;font-size:1.25rem}.avatar-xl{width:5rem;height:5rem;font-size:1.5rem}.avatar-primary{color:#fff;background-color:#6d4af5;border-color:rgba(0,0,0,0)}.avatar-secondary{color:#0b0f1d;background-color:#7c8aa5;border-color:rgba(0,0,0,0)}.avatar-success{color:#0b0f1d;background-color:#34d399;border-color:rgba(0,0,0,0)}.avatar-danger{color:#0b0f1d;background-color:#fb5b78;border-color:rgba(0,0,0,0)}.avatar-warning{color:#0b0f1d;background-color:#fbbf24;border-color:rgba(0,0,0,0)}.avatar-info{color:#0b0f1d;background-color:#22d3ee;border-color:rgba(0,0,0,0)}.avatar-accent{color:#0b0f1d;background-color:#e879f9;border-color:rgba(0,0,0,0)}.avatar-light{color:#0b0f1d;background-color:#e7ecf5;border-color:rgba(0,0,0,0)}.avatar-dark{color:#fff;background-color:#0b0f1d;border-color:rgba(0,0,0,0)}.avatar-status{overflow:visible}.avatar-status::after{content:"";position:absolute;right:2%;bottom:2%;width:28%;height:28%;background-color:var(--fv-success);border:2px solid var(--fv-body-bg);border-radius:50%}.avatar-status-busy::after{background-color:var(--fv-danger)}.avatar-status-away::after{background-color:var(--fv-warning)}.avatar-group{display:inline-flex}.avatar-group .avatar{border:2px solid var(--fv-body-bg)}.avatar-group .avatar:not(:first-child){margin-left:-0.75rem}.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;color:var(--fv-body-color);background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-radius:50rem}.chip-close{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-right:-0.25rem;padding:0;font-size:1.1em;line-height:1;color:inherit;background:rgba(0,0,0,0);border:0;border-radius:50%;cursor:pointer;opacity:.7}.chip-close:hover{opacity:1;background-color:var(--fv-glass-bg-strong)}.chip-primary{color:rgb(174.7,155.45,249.5);background-color:rgba(109,74,245,.16);border-color:rgba(109,74,245,.35)}.chip-secondary{color:rgb(182.95,190.65,205.5);background-color:rgba(124,138,165,.16);border-color:rgba(124,138,165,.35)}.chip-success{color:rgb(143.35,230.8,198.9);background-color:rgba(52,211,153,.16);border-color:rgba(52,211,153,.35)}.chip-danger{color:rgb(252.8,164.8,180.75);background-color:rgba(251,91,120,.16);border-color:rgba(251,91,120,.35)}.chip-warning{color:rgb(252.8,219.8,134.55);background-color:rgba(251,191,36,.16);border-color:rgba(251,191,36,.35)}.chip-info{color:rgb(133.45,230.8,245.65);background-color:rgba(34,211,238,.16);border-color:rgba(34,211,238,.35)}.chip-accent{color:rgb(242.35,181.3,251.7);background-color:rgba(232,121,249,.16);border-color:rgba(232,121,249,.35)}.chip-light{color:rgb(241.8,244.55,249.5);background-color:rgba(231,236,245,.16);border-color:rgba(231,236,245,.35)}.chip-dark{color:rgb(120.8,123,130.7);background-color:rgba(11,15,29,.16);border-color:rgba(11,15,29,.35)}[data-theme=light] .chip-primary{color:rgb(47.9,40.85,113.05)}[data-theme=light] .chip-secondary{color:rgb(53.15,63.25,85.05)}[data-theme=light] .chip-success{color:rgb(27.95,88.8,80.85)}[data-theme=light] .chip-danger{color:rgb(97.6,46.8,69.3)}[data-theme=light] .chip-warning{color:rgb(97.6,81.8,39.9)}[data-theme=light] .chip-info{color:rgb(21.65,88.8,110.6)}[data-theme=light] .chip-accent{color:rgb(90.95,57.3,114.45)}[data-theme=light] .chip-light{color:rgb(90.6,97.55,113.05)}[data-theme=light] .chip-dark{color:rgb(13.6,20.2,37.45)}.progress{position:relative;display:flex;height:.625rem;overflow:hidden;background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-radius:50rem}.progress-bar{width:0;height:100%;background-image:var(--fv-gradient-primary);border-radius:inherit;transition:width .4s ease}.progress-lg{height:1rem}.progress-sm{height:.35rem}.progress-primary .progress-bar{background-image:none;background-color:#6d4af5}.progress-secondary .progress-bar{background-image:none;background-color:#7c8aa5}.progress-success .progress-bar{background-image:none;background-color:#34d399}.progress-danger .progress-bar{background-image:none;background-color:#fb5b78}.progress-warning .progress-bar{background-image:none;background-color:#fbbf24}.progress-info .progress-bar{background-image:none;background-color:#22d3ee}.progress-accent .progress-bar{background-image:none;background-color:#e879f9}.progress-light .progress-bar{background-image:none;background-color:#e7ecf5}.progress-dark .progress-bar{background-image:none;background-color:#0b0f1d}.progress-striped .progress-bar{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.18) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.18) 50%, rgba(255, 255, 255, 0.18) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-animated .progress-bar{animation:fv-progress-stripes 1s linear infinite}@keyframes fv-progress-stripes{from{background-position:1rem 0}to{background-position:0 0}}@media(prefers-reduced-motion: reduce){.progress-animated .progress-bar{animation:none}}.spinner{display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;border:3px solid var(--fv-glass-border);border-top-color:var(--fv-primary);border-radius:50%;animation:fv-spin .7s linear infinite}.spinner-sm{width:1rem;height:1rem;border-width:2px}.spinner-lg{width:2.5rem;height:2.5rem;border-width:4px}.spinner-primary{border-top-color:#6d4af5}.spinner-secondary{border-top-color:#7c8aa5}.spinner-success{border-top-color:#34d399}.spinner-danger{border-top-color:#fb5b78}.spinner-warning{border-top-color:#fbbf24}.spinner-info{border-top-color:#22d3ee}.spinner-accent{border-top-color:#e879f9}.spinner-light{border-top-color:#e7ecf5}.spinner-dark{border-top-color:#0b0f1d}.spinner-dots{display:inline-flex;gap:.3rem;vertical-align:middle}.spinner-dots>span{width:.5rem;height:.5rem;background-color:var(--fv-primary);border-radius:50%;animation:fv-bounce .6s ease-in-out infinite}.spinner-dots>span:nth-child(2){animation-delay:.12s}.spinner-dots>span:nth-child(3){animation-delay:.24s}@keyframes fv-spin{to{transform:rotate(360deg)}}@keyframes fv-bounce{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-0.45rem);opacity:1}}@media(prefers-reduced-motion: reduce){.spinner{animation:fv-spin 1.6s linear infinite !important}.spinner-dots>span{animation:none}}.skeleton{display:block;background-image:linear-gradient(100deg, var(--fv-glass-bg) 30%, var(--fv-glass-bg-strong) 50%, var(--fv-glass-bg) 70%);background-size:200% 100%;border-radius:.625rem;animation:fv-skeleton 1.4s ease-in-out infinite}.skeleton-text{height:.8em;margin-bottom:.5rem;border-radius:.375rem}.skeleton-title{width:50%;height:1.4em;margin-bottom:.75rem}.skeleton-avatar{width:3rem;height:3rem;border-radius:50%}.skeleton-btn{width:7rem;height:2.6rem}@keyframes fv-skeleton{from{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion: reduce){.skeleton{animation:none}}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:0;margin-bottom:1rem;font-size:.875rem;list-style:none}.breadcrumb-item{display:inline-flex;align-items:center;gap:.5rem;color:var(--fv-muted)}.breadcrumb-item a{color:var(--fv-muted);text-decoration:none;transition:color .2s ease}.breadcrumb-item a:hover{color:var(--fv-body-color)}.breadcrumb-item.active{color:var(--fv-body-color)}.breadcrumb-item:not(:last-child)::after{content:"/";color:var(--fv-muted);opacity:.5}.pagination{display:inline-flex;flex-wrap:wrap;gap:.25rem;padding:0;margin:0;list-style:none}.page-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding:0 .5rem;color:var(--fv-body-color);text-decoration:none;background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-radius:.625rem;transition:background-color .2s ease,border-color .2s ease}.page-link:hover{background-color:var(--fv-glass-bg-strong);text-decoration:none}.page-link:focus-visible{outline:0;box-shadow:var(--fv-focus-ring)}.page-item.active .page-link{color:#fff;background-image:var(--fv-gradient-primary);border-color:rgba(0,0,0,0)}.page-item.disabled .page-link{opacity:.45;pointer-events:none}[data-tooltip]{position:relative}[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .5rem);z-index:1070;padding:.25rem .75rem;font-size:.875rem;font-weight:500;white-space:nowrap;color:var(--fv-body-color);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);border-radius:.625rem;box-shadow:var(--fv-shadow-lg);opacity:0;pointer-events:none;transform:translateX(-50%) translateY(0.25rem);transition:opacity .2s ease,transform .2s ease}[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}.switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.switch input{position:absolute;width:0;height:0;opacity:0}.switch-track{width:2.6rem;height:1.5rem;background-color:var(--fv-glass-bg-strong);border:1px solid var(--fv-glass-border);border-radius:50rem;transition:background-color .2s ease,border-color .2s ease}.switch-thumb{position:absolute;top:50%;left:.22rem;width:1.04rem;height:1.04rem;background-color:#fff;border-radius:50%;box-shadow:var(--fv-shadow-sm);transform:translateY(-50%);transition:transform .2s ease}.switch input:checked~.switch-track{background-image:var(--fv-gradient-primary);border-color:rgba(0,0,0,0)}.switch input:checked~.switch-thumb{transform:translateY(-50%) translateX(1.08rem)}.switch input:focus-visible~.switch-track{box-shadow:var(--fv-focus-ring)}.switch input:disabled~.switch-track{opacity:.5}.tabs{display:inline-flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;margin-bottom:1rem;background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-radius:.875rem}.tab{padding:.5rem 1rem;font-size:1rem;font-weight:500;color:var(--fv-muted);background:rgba(0,0,0,0);border:0;border-radius:.625rem;cursor:pointer;transition:color .2s ease,background-color .2s ease}.tab:hover{color:var(--fv-body-color)}.tab:focus-visible{outline:0;box-shadow:var(--fv-focus-ring)}.tab.active{color:var(--fv-body-color);background-color:var(--fv-glass-bg-strong);box-shadow:var(--fv-shadow-sm)}.tab-panel{display:none}.tab-panel.active{display:block;animation:fv-fade-in .25s ease}@keyframes fv-fade-in{from{opacity:0;transform:translateY(0.4rem)}to{opacity:1;transform:none}}@media(prefers-reduced-motion: reduce){.tab-panel.active{animation:none}}.accordion-item{margin-bottom:.5rem;border-radius:.875rem;overflow:hidden;background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1)}.accordion-item>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;font-weight:600;list-style:none;cursor:pointer;transition:background-color .2s ease}.accordion-item>summary::-webkit-details-marker{display:none}.accordion-item>summary::after{content:"";flex-shrink:0;width:.5rem;height:.5rem;border-right:2px solid var(--fv-muted);border-bottom:2px solid var(--fv-muted);transform:rotate(45deg);transition:transform .2s ease}.accordion-item>summary:hover{background-color:var(--fv-glass-bg)}.accordion-item>summary:focus-visible{outline:0;box-shadow:var(--fv-focus-ring)}.accordion-item[open]>summary::after{transform:rotate(-135deg)}.accordion-body{padding:0 1rem 1rem;color:var(--fv-muted)}.dropdown{position:relative;display:inline-block}.dropdown>summary{list-style:none;cursor:pointer}.dropdown>summary::-webkit-details-marker{display:none}.dropdown-menu{position:absolute;top:calc(100% + .4rem);left:0;z-index:1000;min-width:11rem;padding:.25rem;border-radius:.875rem;background-color:var(--fv-glass-bg);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);animation:fv-dropdown-in .15s ease}.dropdown-menu-end{left:auto;right:0}.dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;font-size:1rem;color:var(--fv-body-color);text-align:left;text-decoration:none;background:rgba(0,0,0,0);border:0;border-radius:.625rem;cursor:pointer;transition:background-color .2s ease}.dropdown-item:hover{background-color:var(--fv-glass-bg);text-decoration:none}.dropdown-item:focus-visible{outline:0;box-shadow:var(--fv-focus-ring)}.dropdown-divider{height:1px;margin:.25rem 0;background-color:var(--fv-glass-border)}@keyframes fv-dropdown-in{from{opacity:0;transform:translateY(-0.35rem)}to{opacity:1;transform:none}}@media(prefers-reduced-motion: reduce){.dropdown-menu{animation:none}}.modal{width:calc(100% - 1.5rem);max-width:32rem;padding:0;color:var(--fv-body-color);border-radius:1.125rem;background-color:var(--fv-glass-bg);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:var(--fv-shadow-xl)}.modal::backdrop{background-color:rgba(6,9,18,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal[open]{animation:fv-modal-in .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.5rem;border-bottom:1px solid var(--fv-glass-border)}.modal-title{margin:0;font-size:1.25rem;font-weight:700}.modal-body{padding:1.5rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--fv-glass-border)}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-size:1.5rem;line-height:1;color:var(--fv-muted);background:rgba(0,0,0,0);border:0;border-radius:.625rem;cursor:pointer;transition:color .2s ease,background-color .2s ease}.modal-close:hover{color:var(--fv-body-color);background-color:var(--fv-glass-bg)}@keyframes fv-modal-in{from{opacity:0;transform:translateY(1rem) scale(0.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion: reduce){.modal[open]{animation:none}}.toast-container{position:fixed;top:1.5rem;right:1.5rem;z-index:1070;display:flex;flex-direction:column;gap:.5rem;width:min(22rem,100vw - 2rem)}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:.875rem;border-left:3px solid var(--fv-primary);background-color:var(--fv-glass-bg);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1);box-shadow:var(--fv-shadow-xl);animation:fv-toast-in .3s ease}.toast-body{flex:1 1 auto;min-width:0}.toast-title{font-weight:600}.toast-message{font-size:.875rem;color:var(--fv-muted)}.toast-close{flex-shrink:0;padding:0;font-size:1.2rem;line-height:1;color:var(--fv-muted);background:rgba(0,0,0,0);border:0;cursor:pointer}.toast-close:hover{color:var(--fv-body-color)}.toast-primary{border-left-color:#6d4af5}.toast-secondary{border-left-color:#7c8aa5}.toast-success{border-left-color:#34d399}.toast-danger{border-left-color:#fb5b78}.toast-warning{border-left-color:#fbbf24}.toast-info{border-left-color:#22d3ee}.toast-accent{border-left-color:#e879f9}.toast-light{border-left-color:#e7ecf5}.toast-dark{border-left-color:#0b0f1d}.toast.is-leaving{animation:fv-toast-out .25s ease forwards}@keyframes fv-toast-in{from{opacity:0;transform:translateX(1rem)}to{opacity:1;transform:none}}@keyframes fv-toast-out{to{opacity:0;transform:translateX(1rem)}}@media(prefers-reduced-motion: reduce){.toast{animation:none}}.stepper{display:flex;gap:.5rem;padding:0;margin:0 0 1rem;list-style:none}.step{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.step-dot{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;font-weight:600;color:var(--fv-muted);background-color:var(--fv-body-bg);border:1px solid var(--fv-glass-border);border-radius:50%}.step-label{font-size:.875rem;color:var(--fv-muted)}.step:not(:last-child)::after{content:"";position:absolute;top:1rem;left:50%;width:100%;height:2px;background-color:var(--fv-glass-border)}.step.is-active .step-dot{color:#fff;background-image:var(--fv-gradient-primary);border-color:rgba(0,0,0,0);box-shadow:var(--fv-glow-primary)}.step.is-done .step-dot{color:#fff;background-color:var(--fv-success);border-color:rgba(0,0,0,0)}.step.is-active .step-label,.step.is-done .step-label{color:var(--fv-body-color)}.timeline{padding:0;margin:0;list-style:none}.timeline-item{display:flex;gap:1rem}.timeline-marker{flex:0 0 auto;display:flex;flex-direction:column;align-items:center}.timeline-marker::before{content:"";flex:0 0 auto;width:.9rem;height:.9rem;margin-top:.3rem;background-color:var(--fv-primary);border:2px solid var(--fv-body-bg);border-radius:50%;box-shadow:0 0 0 1px var(--fv-glass-border)}.timeline-marker::after{content:"";flex:1 1 auto;width:2px;margin-top:.25rem;background-color:var(--fv-glass-border)}.timeline-item:last-child .timeline-marker::after{display:none}.timeline-content{padding-bottom:1.5rem}.timeline-title{font-weight:600}.timeline-time{font-size:.875rem;color:var(--fv-muted)}.timeline-primary .timeline-marker::before{background-color:#6d4af5}.timeline-secondary .timeline-marker::before{background-color:#7c8aa5}.timeline-success .timeline-marker::before{background-color:#34d399}.timeline-danger .timeline-marker::before{background-color:#fb5b78}.timeline-warning .timeline-marker::before{background-color:#fbbf24}.timeline-info .timeline-marker::before{background-color:#22d3ee}.timeline-accent .timeline-marker::before{background-color:#e879f9}.timeline-light .timeline-marker::before{background-color:#e7ecf5}.timeline-dark .timeline-marker::before{background-color:#0b0f1d}.segmented{display:inline-flex;gap:.2rem;padding:.25rem;background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-radius:.875rem}.segmented input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.segmented label{padding:.25rem 1rem;font-size:.875rem;font-weight:500;color:var(--fv-muted);border-radius:.625rem;cursor:pointer;transition:color .2s ease,background-color .2s ease}.segmented label:hover{color:var(--fv-body-color)}.segmented input:checked+label{color:var(--fv-body-color);background-color:var(--fv-glass-bg-strong);box-shadow:var(--fv-shadow-sm)}.segmented input:focus-visible+label{box-shadow:var(--fv-focus-ring)}.rating{display:inline-flex;align-items:center;gap:.1rem;color:var(--fv-warning)}.rating .icon{width:1.1em;height:1.1em;fill:currentColor}.rating-empty{color:var(--fv-glass-border)}.stat-value{font-size:1.875rem;font-weight:800;line-height:1.1;letter-spacing:-0.02em}.stat-label{color:var(--fv-muted)}.stat-trend{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:600}.stat-trend-up{color:var(--fv-success)}.stat-trend-down{color:var(--fv-danger)}.empty-state{padding:3rem 1rem;text-align:center}.empty-state-icon{width:3.5rem;height:3.5rem;margin-bottom:.75rem;color:var(--fv-muted);opacity:.7}.empty-state-title{margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.empty-state-text{max-width:28rem;margin:0 auto 1rem;color:var(--fv-muted)}.list-group{display:flex;flex-direction:column;border-radius:.875rem;overflow:hidden;background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1)}.list-group-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--fv-body-color);background-color:rgba(0,0,0,0);border:0;border-bottom:1px solid var(--fv-glass-border);text-align:left}.list-group-item:last-child{border-bottom:0}a.list-group-item,button.list-group-item{width:100%;text-decoration:none;cursor:pointer;transition:background-color .2s ease}a.list-group-item:hover,button.list-group-item:hover{background-color:var(--fv-glass-bg)}a.list-group-item:focus-visible,button.list-group-item:focus-visible{outline:0;box-shadow:var(--fv-focus-ring)}.list-group-item.is-active{color:var(--fv-body-color);background-color:var(--fv-glass-bg-strong)}.callout{padding:1rem;margin-bottom:1rem;background-color:var(--fv-glass-bg);border:1px solid var(--fv-glass-border);border-left:3px solid var(--fv-primary);border-radius:.625rem}.callout-title{margin-bottom:.25rem;font-weight:600}.callout>:last-child{margin-bottom:0}.callout-primary{border-left-color:#6d4af5}.callout-primary .callout-title{color:#6d4af5}.callout-secondary{border-left-color:#7c8aa5}.callout-secondary .callout-title{color:#7c8aa5}.callout-success{border-left-color:#34d399}.callout-success .callout-title{color:#34d399}.callout-danger{border-left-color:#fb5b78}.callout-danger .callout-title{color:#fb5b78}.callout-warning{border-left-color:#fbbf24}.callout-warning .callout-title{color:#fbbf24}.callout-info{border-left-color:#22d3ee}.callout-info .callout-title{color:#22d3ee}.callout-accent{border-left-color:#e879f9}.callout-accent .callout-title{color:#e879f9}.callout-light{border-left-color:#e7ecf5}.callout-light .callout-title{color:#e7ecf5}.callout-dark{border-left-color:#0b0f1d}.callout-dark .callout-title{color:#0b0f1d}.form-range{width:100%;height:1.5rem;padding:0;background:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;cursor:pointer}.form-range:focus{outline:0}.form-range::-webkit-slider-runnable-track{height:.4rem;background-color:var(--fv-glass-bg-strong);border:1px solid var(--fv-glass-border);border-radius:50rem}.form-range::-moz-range-track{height:.4rem;background-color:var(--fv-glass-bg-strong);border:1px solid var(--fv-glass-border);border-radius:50rem}.form-range::-webkit-slider-thumb{-webkit-appearance:none;width:1.1rem;height:1.1rem;margin-top:-0.42rem;background-image:var(--fv-gradient-primary);border:0;border-radius:50%;box-shadow:var(--fv-shadow-sm)}.form-range::-moz-range-thumb{width:1.1rem;height:1.1rem;background-image:var(--fv-gradient-primary);border:0;border-radius:50%;box-shadow:var(--fv-shadow-sm)}.form-range:focus-visible::-webkit-slider-thumb{box-shadow:var(--fv-focus-ring)}.form-range:focus-visible::-moz-range-thumb{box-shadow:var(--fv-focus-ring)}.mt-0{margin-top:0 !important}.me-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ms-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-0{margin:0 !important}.mt-1{margin-top:.25rem !important}.me-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ms-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-1{margin:.25rem !important}.mt-2{margin-top:.5rem !important}.me-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ms-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-2{margin:.5rem !important}.mt-3{margin-top:.75rem !important}.me-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ms-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-3{margin:.75rem !important}.mt-4{margin-top:1rem !important}.me-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ms-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-4{margin:1rem !important}.mt-5{margin-top:1.5rem !important}.me-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ms-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-5{margin:1.5rem !important}.mt-6{margin-top:2rem !important}.me-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ms-6{margin-left:2rem !important}.mx-6{margin-left:2rem !important;margin-right:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-6{margin:2rem !important}.mt-7{margin-top:3rem !important}.me-7{margin-right:3rem !important}.mb-7{margin-bottom:3rem !important}.ms-7{margin-left:3rem !important}.mx-7{margin-left:3rem !important;margin-right:3rem !important}.my-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-7{margin:3rem !important}.mt-8{margin-top:4rem !important}.me-8{margin-right:4rem !important}.mb-8{margin-bottom:4rem !important}.ms-8{margin-left:4rem !important}.mx-8{margin-left:4rem !important;margin-right:4rem !important}.my-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-8{margin:4rem !important}.pt-0{padding-top:0 !important}.pe-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.ps-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-0{padding:0 !important}.pt-1{padding-top:.25rem !important}.pe-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.ps-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-1{padding:.25rem !important}.pt-2{padding-top:.5rem !important}.pe-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.ps-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-2{padding:.5rem !important}.pt-3{padding-top:.75rem !important}.pe-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.ps-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-3{padding:.75rem !important}.pt-4{padding-top:1rem !important}.pe-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.ps-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-4{padding:1rem !important}.pt-5{padding-top:1.5rem !important}.pe-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.ps-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-5{padding:1.5rem !important}.pt-6{padding-top:2rem !important}.pe-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.ps-6{padding-left:2rem !important}.px-6{padding-left:2rem !important;padding-right:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-6{padding:2rem !important}.pt-7{padding-top:3rem !important}.pe-7{padding-right:3rem !important}.pb-7{padding-bottom:3rem !important}.ps-7{padding-left:3rem !important}.px-7{padding-left:3rem !important;padding-right:3rem !important}.py-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-7{padding:3rem !important}.pt-8{padding-top:4rem !important}.pe-8{padding-right:4rem !important}.pb-8{padding-bottom:4rem !important}.ps-8{padding-left:4rem !important}.px-8{padding-left:4rem !important;padding-right:4rem !important}.py-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-8{padding:4rem !important}.m-n1{margin:-0.25rem !important}.mt-n1{margin-top:-0.25rem !important}.mb-n1{margin-bottom:-0.25rem !important}.ms-n1{margin-left:-0.25rem !important}.me-n1{margin-right:-0.25rem !important}.mx-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-n2{margin:-0.5rem !important}.mt-n2{margin-top:-0.5rem !important}.mb-n2{margin-bottom:-0.5rem !important}.ms-n2{margin-left:-0.5rem !important}.me-n2{margin-right:-0.5rem !important}.mx-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-n3{margin:-0.75rem !important}.mt-n3{margin-top:-0.75rem !important}.mb-n3{margin-bottom:-0.75rem !important}.ms-n3{margin-left:-0.75rem !important}.me-n3{margin-right:-0.75rem !important}.mx-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-n4{margin:-1rem !important}.mt-n4{margin-top:-1rem !important}.mb-n4{margin-bottom:-1rem !important}.ms-n4{margin-left:-1rem !important}.me-n4{margin-right:-1rem !important}.mx-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-n5{margin:-1.5rem !important}.mt-n5{margin-top:-1.5rem !important}.mb-n5{margin-bottom:-1.5rem !important}.ms-n5{margin-left:-1.5rem !important}.me-n5{margin-right:-1.5rem !important}.mx-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-n6{margin:-2rem !important}.mt-n6{margin-top:-2rem !important}.mb-n6{margin-bottom:-2rem !important}.ms-n6{margin-left:-2rem !important}.me-n6{margin-right:-2rem !important}.mx-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-n7{margin:-3rem !important}.mt-n7{margin-top:-3rem !important}.mb-n7{margin-bottom:-3rem !important}.ms-n7{margin-left:-3rem !important}.me-n7{margin-right:-3rem !important}.mx-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-n8{margin:-4rem !important}.mt-n8{margin-top:-4rem !important}.mb-n8{margin-bottom:-4rem !important}.ms-n8{margin-left:-4rem !important}.me-n8{margin-right:-4rem !important}.mx-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mb-auto{margin-bottom:auto !important}.ms-auto{margin-left:auto !important}.me-auto{margin-right:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}@media(min-width: 576px){.mt-sm-0{margin-top:0 !important}.me-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ms-sm-0{margin-left:0 !important}.mx-sm-0{margin-left:0 !important;margin-right:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-0{margin:0 !important}.mt-sm-1{margin-top:.25rem !important}.me-sm-1{margin-right:.25rem !important}.mb-sm-1{margin-bottom:.25rem !important}.ms-sm-1{margin-left:.25rem !important}.mx-sm-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-sm-1{margin:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.me-sm-2{margin-right:.5rem !important}.mb-sm-2{margin-bottom:.5rem !important}.ms-sm-2{margin-left:.5rem !important}.mx-sm-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-3{margin-top:.75rem !important}.me-sm-3{margin-right:.75rem !important}.mb-sm-3{margin-bottom:.75rem !important}.ms-sm-3{margin-left:.75rem !important}.mx-sm-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-sm-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-sm-3{margin:.75rem !important}.mt-sm-4{margin-top:1rem !important}.me-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ms-sm-4{margin-left:1rem !important}.mx-sm-4{margin-left:1rem !important;margin-right:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-sm-4{margin:1rem !important}.mt-sm-5{margin-top:1.5rem !important}.me-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ms-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-sm-5{margin:1.5rem !important}.mt-sm-6{margin-top:2rem !important}.me-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ms-sm-6{margin-left:2rem !important}.mx-sm-6{margin-left:2rem !important;margin-right:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-sm-6{margin:2rem !important}.mt-sm-7{margin-top:3rem !important}.me-sm-7{margin-right:3rem !important}.mb-sm-7{margin-bottom:3rem !important}.ms-sm-7{margin-left:3rem !important}.mx-sm-7{margin-left:3rem !important;margin-right:3rem !important}.my-sm-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-sm-7{margin:3rem !important}.mt-sm-8{margin-top:4rem !important}.me-sm-8{margin-right:4rem !important}.mb-sm-8{margin-bottom:4rem !important}.ms-sm-8{margin-left:4rem !important}.mx-sm-8{margin-left:4rem !important;margin-right:4rem !important}.my-sm-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-sm-8{margin:4rem !important}.pt-sm-0{padding-top:0 !important}.pe-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.ps-sm-0{padding-left:0 !important}.px-sm-0{padding-left:0 !important;padding-right:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-0{padding:0 !important}.pt-sm-1{padding-top:.25rem !important}.pe-sm-1{padding-right:.25rem !important}.pb-sm-1{padding-bottom:.25rem !important}.ps-sm-1{padding-left:.25rem !important}.px-sm-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-sm-1{padding:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pe-sm-2{padding-right:.5rem !important}.pb-sm-2{padding-bottom:.5rem !important}.ps-sm-2{padding-left:.5rem !important}.px-sm-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-3{padding-top:.75rem !important}.pe-sm-3{padding-right:.75rem !important}.pb-sm-3{padding-bottom:.75rem !important}.ps-sm-3{padding-left:.75rem !important}.px-sm-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-sm-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-sm-3{padding:.75rem !important}.pt-sm-4{padding-top:1rem !important}.pe-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.ps-sm-4{padding-left:1rem !important}.px-sm-4{padding-left:1rem !important;padding-right:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-4{padding:1rem !important}.pt-sm-5{padding-top:1.5rem !important}.pe-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.ps-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-6{padding-top:2rem !important}.pe-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.ps-sm-6{padding-left:2rem !important}.px-sm-6{padding-left:2rem !important;padding-right:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-6{padding:2rem !important}.pt-sm-7{padding-top:3rem !important}.pe-sm-7{padding-right:3rem !important}.pb-sm-7{padding-bottom:3rem !important}.ps-sm-7{padding-left:3rem !important}.px-sm-7{padding-left:3rem !important;padding-right:3rem !important}.py-sm-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-7{padding:3rem !important}.pt-sm-8{padding-top:4rem !important}.pe-sm-8{padding-right:4rem !important}.pb-sm-8{padding-bottom:4rem !important}.ps-sm-8{padding-left:4rem !important}.px-sm-8{padding-left:4rem !important;padding-right:4rem !important}.py-sm-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-sm-8{padding:4rem !important}.m-sm-n1{margin:-0.25rem !important}.mt-sm-n1{margin-top:-0.25rem !important}.mb-sm-n1{margin-bottom:-0.25rem !important}.ms-sm-n1{margin-left:-0.25rem !important}.me-sm-n1{margin-right:-0.25rem !important}.mx-sm-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.mt-sm-n2{margin-top:-0.5rem !important}.mb-sm-n2{margin-bottom:-0.5rem !important}.ms-sm-n2{margin-left:-0.5rem !important}.me-sm-n2{margin-right:-0.5rem !important}.mx-sm-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-sm-n3{margin:-0.75rem !important}.mt-sm-n3{margin-top:-0.75rem !important}.mb-sm-n3{margin-bottom:-0.75rem !important}.ms-sm-n3{margin-left:-0.75rem !important}.me-sm-n3{margin-right:-0.75rem !important}.mx-sm-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-sm-n4{margin:-1rem !important}.mt-sm-n4{margin-top:-1rem !important}.mb-sm-n4{margin-bottom:-1rem !important}.ms-sm-n4{margin-left:-1rem !important}.me-sm-n4{margin-right:-1rem !important}.mx-sm-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-sm-n5{margin:-1.5rem !important}.mt-sm-n5{margin-top:-1.5rem !important}.mb-sm-n5{margin-bottom:-1.5rem !important}.ms-sm-n5{margin-left:-1.5rem !important}.me-sm-n5{margin-right:-1.5rem !important}.mx-sm-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-sm-n6{margin:-2rem !important}.mt-sm-n6{margin-top:-2rem !important}.mb-sm-n6{margin-bottom:-2rem !important}.ms-sm-n6{margin-left:-2rem !important}.me-sm-n6{margin-right:-2rem !important}.mx-sm-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-sm-n7{margin:-3rem !important}.mt-sm-n7{margin-top:-3rem !important}.mb-sm-n7{margin-bottom:-3rem !important}.ms-sm-n7{margin-left:-3rem !important}.me-sm-n7{margin-right:-3rem !important}.mx-sm-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-sm-n8{margin:-4rem !important}.mt-sm-n8{margin-top:-4rem !important}.mb-sm-n8{margin-bottom:-4rem !important}.ms-sm-n8{margin-left:-4rem !important}.me-sm-n8{margin-right:-4rem !important}.mx-sm-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto{margin-top:auto !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-auto{margin-left:auto !important}.me-sm-auto{margin-right:auto !important}.mx-sm-auto{margin-left:auto !important;margin-right:auto !important}}@media(min-width: 768px){.mt-md-0{margin-top:0 !important}.me-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ms-md-0{margin-left:0 !important}.mx-md-0{margin-left:0 !important;margin-right:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-0{margin:0 !important}.mt-md-1{margin-top:.25rem !important}.me-md-1{margin-right:.25rem !important}.mb-md-1{margin-bottom:.25rem !important}.ms-md-1{margin-left:.25rem !important}.mx-md-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-md-1{margin:.25rem !important}.mt-md-2{margin-top:.5rem !important}.me-md-2{margin-right:.5rem !important}.mb-md-2{margin-bottom:.5rem !important}.ms-md-2{margin-left:.5rem !important}.mx-md-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-md-2{margin:.5rem !important}.mt-md-3{margin-top:.75rem !important}.me-md-3{margin-right:.75rem !important}.mb-md-3{margin-bottom:.75rem !important}.ms-md-3{margin-left:.75rem !important}.mx-md-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-md-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-md-3{margin:.75rem !important}.mt-md-4{margin-top:1rem !important}.me-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ms-md-4{margin-left:1rem !important}.mx-md-4{margin-left:1rem !important;margin-right:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-md-4{margin:1rem !important}.mt-md-5{margin-top:1.5rem !important}.me-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ms-md-5{margin-left:1.5rem !important}.mx-md-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-md-5{margin:1.5rem !important}.mt-md-6{margin-top:2rem !important}.me-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ms-md-6{margin-left:2rem !important}.mx-md-6{margin-left:2rem !important;margin-right:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-md-6{margin:2rem !important}.mt-md-7{margin-top:3rem !important}.me-md-7{margin-right:3rem !important}.mb-md-7{margin-bottom:3rem !important}.ms-md-7{margin-left:3rem !important}.mx-md-7{margin-left:3rem !important;margin-right:3rem !important}.my-md-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-md-7{margin:3rem !important}.mt-md-8{margin-top:4rem !important}.me-md-8{margin-right:4rem !important}.mb-md-8{margin-bottom:4rem !important}.ms-md-8{margin-left:4rem !important}.mx-md-8{margin-left:4rem !important;margin-right:4rem !important}.my-md-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-md-8{margin:4rem !important}.pt-md-0{padding-top:0 !important}.pe-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.ps-md-0{padding-left:0 !important}.px-md-0{padding-left:0 !important;padding-right:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-0{padding:0 !important}.pt-md-1{padding-top:.25rem !important}.pe-md-1{padding-right:.25rem !important}.pb-md-1{padding-bottom:.25rem !important}.ps-md-1{padding-left:.25rem !important}.px-md-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-md-1{padding:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pe-md-2{padding-right:.5rem !important}.pb-md-2{padding-bottom:.5rem !important}.ps-md-2{padding-left:.5rem !important}.px-md-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-md-2{padding:.5rem !important}.pt-md-3{padding-top:.75rem !important}.pe-md-3{padding-right:.75rem !important}.pb-md-3{padding-bottom:.75rem !important}.ps-md-3{padding-left:.75rem !important}.px-md-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-md-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-md-3{padding:.75rem !important}.pt-md-4{padding-top:1rem !important}.pe-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.ps-md-4{padding-left:1rem !important}.px-md-4{padding-left:1rem !important;padding-right:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-4{padding:1rem !important}.pt-md-5{padding-top:1.5rem !important}.pe-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.ps-md-5{padding-left:1.5rem !important}.px-md-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-5{padding:1.5rem !important}.pt-md-6{padding-top:2rem !important}.pe-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.ps-md-6{padding-left:2rem !important}.px-md-6{padding-left:2rem !important;padding-right:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-6{padding:2rem !important}.pt-md-7{padding-top:3rem !important}.pe-md-7{padding-right:3rem !important}.pb-md-7{padding-bottom:3rem !important}.ps-md-7{padding-left:3rem !important}.px-md-7{padding-left:3rem !important;padding-right:3rem !important}.py-md-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-7{padding:3rem !important}.pt-md-8{padding-top:4rem !important}.pe-md-8{padding-right:4rem !important}.pb-md-8{padding-bottom:4rem !important}.ps-md-8{padding-left:4rem !important}.px-md-8{padding-left:4rem !important;padding-right:4rem !important}.py-md-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-md-8{padding:4rem !important}.m-md-n1{margin:-0.25rem !important}.mt-md-n1{margin-top:-0.25rem !important}.mb-md-n1{margin-bottom:-0.25rem !important}.ms-md-n1{margin-left:-0.25rem !important}.me-md-n1{margin-right:-0.25rem !important}.mx-md-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.mt-md-n2{margin-top:-0.5rem !important}.mb-md-n2{margin-bottom:-0.5rem !important}.ms-md-n2{margin-left:-0.5rem !important}.me-md-n2{margin-right:-0.5rem !important}.mx-md-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-md-n3{margin:-0.75rem !important}.mt-md-n3{margin-top:-0.75rem !important}.mb-md-n3{margin-bottom:-0.75rem !important}.ms-md-n3{margin-left:-0.75rem !important}.me-md-n3{margin-right:-0.75rem !important}.mx-md-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-md-n4{margin:-1rem !important}.mt-md-n4{margin-top:-1rem !important}.mb-md-n4{margin-bottom:-1rem !important}.ms-md-n4{margin-left:-1rem !important}.me-md-n4{margin-right:-1rem !important}.mx-md-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-md-n5{margin:-1.5rem !important}.mt-md-n5{margin-top:-1.5rem !important}.mb-md-n5{margin-bottom:-1.5rem !important}.ms-md-n5{margin-left:-1.5rem !important}.me-md-n5{margin-right:-1.5rem !important}.mx-md-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-md-n6{margin:-2rem !important}.mt-md-n6{margin-top:-2rem !important}.mb-md-n6{margin-bottom:-2rem !important}.ms-md-n6{margin-left:-2rem !important}.me-md-n6{margin-right:-2rem !important}.mx-md-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-md-n7{margin:-3rem !important}.mt-md-n7{margin-top:-3rem !important}.mb-md-n7{margin-bottom:-3rem !important}.ms-md-n7{margin-left:-3rem !important}.me-md-n7{margin-right:-3rem !important}.mx-md-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-md-n8{margin:-4rem !important}.mt-md-n8{margin-top:-4rem !important}.mb-md-n8{margin-bottom:-4rem !important}.ms-md-n8{margin-left:-4rem !important}.me-md-n8{margin-right:-4rem !important}.mx-md-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-md-auto{margin:auto !important}.mt-md-auto{margin-top:auto !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-auto{margin-left:auto !important}.me-md-auto{margin-right:auto !important}.mx-md-auto{margin-left:auto !important;margin-right:auto !important}}@media(min-width: 992px){.mt-lg-0{margin-top:0 !important}.me-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ms-lg-0{margin-left:0 !important}.mx-lg-0{margin-left:0 !important;margin-right:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-0{margin:0 !important}.mt-lg-1{margin-top:.25rem !important}.me-lg-1{margin-right:.25rem !important}.mb-lg-1{margin-bottom:.25rem !important}.ms-lg-1{margin-left:.25rem !important}.mx-lg-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-lg-1{margin:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.me-lg-2{margin-right:.5rem !important}.mb-lg-2{margin-bottom:.5rem !important}.ms-lg-2{margin-left:.5rem !important}.mx-lg-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-3{margin-top:.75rem !important}.me-lg-3{margin-right:.75rem !important}.mb-lg-3{margin-bottom:.75rem !important}.ms-lg-3{margin-left:.75rem !important}.mx-lg-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-lg-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-lg-3{margin:.75rem !important}.mt-lg-4{margin-top:1rem !important}.me-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ms-lg-4{margin-left:1rem !important}.mx-lg-4{margin-left:1rem !important;margin-right:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-lg-4{margin:1rem !important}.mt-lg-5{margin-top:1.5rem !important}.me-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ms-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-lg-5{margin:1.5rem !important}.mt-lg-6{margin-top:2rem !important}.me-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ms-lg-6{margin-left:2rem !important}.mx-lg-6{margin-left:2rem !important;margin-right:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-lg-6{margin:2rem !important}.mt-lg-7{margin-top:3rem !important}.me-lg-7{margin-right:3rem !important}.mb-lg-7{margin-bottom:3rem !important}.ms-lg-7{margin-left:3rem !important}.mx-lg-7{margin-left:3rem !important;margin-right:3rem !important}.my-lg-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-lg-7{margin:3rem !important}.mt-lg-8{margin-top:4rem !important}.me-lg-8{margin-right:4rem !important}.mb-lg-8{margin-bottom:4rem !important}.ms-lg-8{margin-left:4rem !important}.mx-lg-8{margin-left:4rem !important;margin-right:4rem !important}.my-lg-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-lg-8{margin:4rem !important}.pt-lg-0{padding-top:0 !important}.pe-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.ps-lg-0{padding-left:0 !important}.px-lg-0{padding-left:0 !important;padding-right:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-0{padding:0 !important}.pt-lg-1{padding-top:.25rem !important}.pe-lg-1{padding-right:.25rem !important}.pb-lg-1{padding-bottom:.25rem !important}.ps-lg-1{padding-left:.25rem !important}.px-lg-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-lg-1{padding:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pe-lg-2{padding-right:.5rem !important}.pb-lg-2{padding-bottom:.5rem !important}.ps-lg-2{padding-left:.5rem !important}.px-lg-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-3{padding-top:.75rem !important}.pe-lg-3{padding-right:.75rem !important}.pb-lg-3{padding-bottom:.75rem !important}.ps-lg-3{padding-left:.75rem !important}.px-lg-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-lg-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-lg-3{padding:.75rem !important}.pt-lg-4{padding-top:1rem !important}.pe-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.ps-lg-4{padding-left:1rem !important}.px-lg-4{padding-left:1rem !important;padding-right:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-4{padding:1rem !important}.pt-lg-5{padding-top:1.5rem !important}.pe-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.ps-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-6{padding-top:2rem !important}.pe-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.ps-lg-6{padding-left:2rem !important}.px-lg-6{padding-left:2rem !important;padding-right:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-6{padding:2rem !important}.pt-lg-7{padding-top:3rem !important}.pe-lg-7{padding-right:3rem !important}.pb-lg-7{padding-bottom:3rem !important}.ps-lg-7{padding-left:3rem !important}.px-lg-7{padding-left:3rem !important;padding-right:3rem !important}.py-lg-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-7{padding:3rem !important}.pt-lg-8{padding-top:4rem !important}.pe-lg-8{padding-right:4rem !important}.pb-lg-8{padding-bottom:4rem !important}.ps-lg-8{padding-left:4rem !important}.px-lg-8{padding-left:4rem !important;padding-right:4rem !important}.py-lg-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-lg-8{padding:4rem !important}.m-lg-n1{margin:-0.25rem !important}.mt-lg-n1{margin-top:-0.25rem !important}.mb-lg-n1{margin-bottom:-0.25rem !important}.ms-lg-n1{margin-left:-0.25rem !important}.me-lg-n1{margin-right:-0.25rem !important}.mx-lg-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.mt-lg-n2{margin-top:-0.5rem !important}.mb-lg-n2{margin-bottom:-0.5rem !important}.ms-lg-n2{margin-left:-0.5rem !important}.me-lg-n2{margin-right:-0.5rem !important}.mx-lg-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-lg-n3{margin:-0.75rem !important}.mt-lg-n3{margin-top:-0.75rem !important}.mb-lg-n3{margin-bottom:-0.75rem !important}.ms-lg-n3{margin-left:-0.75rem !important}.me-lg-n3{margin-right:-0.75rem !important}.mx-lg-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-lg-n4{margin:-1rem !important}.mt-lg-n4{margin-top:-1rem !important}.mb-lg-n4{margin-bottom:-1rem !important}.ms-lg-n4{margin-left:-1rem !important}.me-lg-n4{margin-right:-1rem !important}.mx-lg-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-lg-n5{margin:-1.5rem !important}.mt-lg-n5{margin-top:-1.5rem !important}.mb-lg-n5{margin-bottom:-1.5rem !important}.ms-lg-n5{margin-left:-1.5rem !important}.me-lg-n5{margin-right:-1.5rem !important}.mx-lg-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-lg-n6{margin:-2rem !important}.mt-lg-n6{margin-top:-2rem !important}.mb-lg-n6{margin-bottom:-2rem !important}.ms-lg-n6{margin-left:-2rem !important}.me-lg-n6{margin-right:-2rem !important}.mx-lg-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-lg-n7{margin:-3rem !important}.mt-lg-n7{margin-top:-3rem !important}.mb-lg-n7{margin-bottom:-3rem !important}.ms-lg-n7{margin-left:-3rem !important}.me-lg-n7{margin-right:-3rem !important}.mx-lg-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-lg-n8{margin:-4rem !important}.mt-lg-n8{margin-top:-4rem !important}.mb-lg-n8{margin-bottom:-4rem !important}.ms-lg-n8{margin-left:-4rem !important}.me-lg-n8{margin-right:-4rem !important}.mx-lg-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto{margin-top:auto !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-auto{margin-left:auto !important}.me-lg-auto{margin-right:auto !important}.mx-lg-auto{margin-left:auto !important;margin-right:auto !important}}@media(min-width: 1200px){.mt-xl-0{margin-top:0 !important}.me-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ms-xl-0{margin-left:0 !important}.mx-xl-0{margin-left:0 !important;margin-right:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-0{margin:0 !important}.mt-xl-1{margin-top:.25rem !important}.me-xl-1{margin-right:.25rem !important}.mb-xl-1{margin-bottom:.25rem !important}.ms-xl-1{margin-left:.25rem !important}.mx-xl-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-xl-1{margin:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.me-xl-2{margin-right:.5rem !important}.mb-xl-2{margin-bottom:.5rem !important}.ms-xl-2{margin-left:.5rem !important}.mx-xl-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-3{margin-top:.75rem !important}.me-xl-3{margin-right:.75rem !important}.mb-xl-3{margin-bottom:.75rem !important}.ms-xl-3{margin-left:.75rem !important}.mx-xl-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-xl-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-xl-3{margin:.75rem !important}.mt-xl-4{margin-top:1rem !important}.me-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ms-xl-4{margin-left:1rem !important}.mx-xl-4{margin-left:1rem !important;margin-right:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-xl-4{margin:1rem !important}.mt-xl-5{margin-top:1.5rem !important}.me-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ms-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-xl-5{margin:1.5rem !important}.mt-xl-6{margin-top:2rem !important}.me-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ms-xl-6{margin-left:2rem !important}.mx-xl-6{margin-left:2rem !important;margin-right:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-xl-6{margin:2rem !important}.mt-xl-7{margin-top:3rem !important}.me-xl-7{margin-right:3rem !important}.mb-xl-7{margin-bottom:3rem !important}.ms-xl-7{margin-left:3rem !important}.mx-xl-7{margin-left:3rem !important;margin-right:3rem !important}.my-xl-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-xl-7{margin:3rem !important}.mt-xl-8{margin-top:4rem !important}.me-xl-8{margin-right:4rem !important}.mb-xl-8{margin-bottom:4rem !important}.ms-xl-8{margin-left:4rem !important}.mx-xl-8{margin-left:4rem !important;margin-right:4rem !important}.my-xl-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-xl-8{margin:4rem !important}.pt-xl-0{padding-top:0 !important}.pe-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.ps-xl-0{padding-left:0 !important}.px-xl-0{padding-left:0 !important;padding-right:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-0{padding:0 !important}.pt-xl-1{padding-top:.25rem !important}.pe-xl-1{padding-right:.25rem !important}.pb-xl-1{padding-bottom:.25rem !important}.ps-xl-1{padding-left:.25rem !important}.px-xl-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-xl-1{padding:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pe-xl-2{padding-right:.5rem !important}.pb-xl-2{padding-bottom:.5rem !important}.ps-xl-2{padding-left:.5rem !important}.px-xl-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-3{padding-top:.75rem !important}.pe-xl-3{padding-right:.75rem !important}.pb-xl-3{padding-bottom:.75rem !important}.ps-xl-3{padding-left:.75rem !important}.px-xl-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-xl-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-xl-3{padding:.75rem !important}.pt-xl-4{padding-top:1rem !important}.pe-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.ps-xl-4{padding-left:1rem !important}.px-xl-4{padding-left:1rem !important;padding-right:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-4{padding:1rem !important}.pt-xl-5{padding-top:1.5rem !important}.pe-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.ps-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-6{padding-top:2rem !important}.pe-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.ps-xl-6{padding-left:2rem !important}.px-xl-6{padding-left:2rem !important;padding-right:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-6{padding:2rem !important}.pt-xl-7{padding-top:3rem !important}.pe-xl-7{padding-right:3rem !important}.pb-xl-7{padding-bottom:3rem !important}.ps-xl-7{padding-left:3rem !important}.px-xl-7{padding-left:3rem !important;padding-right:3rem !important}.py-xl-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-7{padding:3rem !important}.pt-xl-8{padding-top:4rem !important}.pe-xl-8{padding-right:4rem !important}.pb-xl-8{padding-bottom:4rem !important}.ps-xl-8{padding-left:4rem !important}.px-xl-8{padding-left:4rem !important;padding-right:4rem !important}.py-xl-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-xl-8{padding:4rem !important}.m-xl-n1{margin:-0.25rem !important}.mt-xl-n1{margin-top:-0.25rem !important}.mb-xl-n1{margin-bottom:-0.25rem !important}.ms-xl-n1{margin-left:-0.25rem !important}.me-xl-n1{margin-right:-0.25rem !important}.mx-xl-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.mt-xl-n2{margin-top:-0.5rem !important}.mb-xl-n2{margin-bottom:-0.5rem !important}.ms-xl-n2{margin-left:-0.5rem !important}.me-xl-n2{margin-right:-0.5rem !important}.mx-xl-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-xl-n3{margin:-0.75rem !important}.mt-xl-n3{margin-top:-0.75rem !important}.mb-xl-n3{margin-bottom:-0.75rem !important}.ms-xl-n3{margin-left:-0.75rem !important}.me-xl-n3{margin-right:-0.75rem !important}.mx-xl-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-xl-n4{margin:-1rem !important}.mt-xl-n4{margin-top:-1rem !important}.mb-xl-n4{margin-bottom:-1rem !important}.ms-xl-n4{margin-left:-1rem !important}.me-xl-n4{margin-right:-1rem !important}.mx-xl-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-xl-n5{margin:-1.5rem !important}.mt-xl-n5{margin-top:-1.5rem !important}.mb-xl-n5{margin-bottom:-1.5rem !important}.ms-xl-n5{margin-left:-1.5rem !important}.me-xl-n5{margin-right:-1.5rem !important}.mx-xl-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-xl-n6{margin:-2rem !important}.mt-xl-n6{margin-top:-2rem !important}.mb-xl-n6{margin-bottom:-2rem !important}.ms-xl-n6{margin-left:-2rem !important}.me-xl-n6{margin-right:-2rem !important}.mx-xl-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-xl-n7{margin:-3rem !important}.mt-xl-n7{margin-top:-3rem !important}.mb-xl-n7{margin-bottom:-3rem !important}.ms-xl-n7{margin-left:-3rem !important}.me-xl-n7{margin-right:-3rem !important}.mx-xl-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-xl-n8{margin:-4rem !important}.mt-xl-n8{margin-top:-4rem !important}.mb-xl-n8{margin-bottom:-4rem !important}.ms-xl-n8{margin-left:-4rem !important}.me-xl-n8{margin-right:-4rem !important}.mx-xl-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto{margin-top:auto !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-auto{margin-left:auto !important}.me-xl-auto{margin-right:auto !important}.mx-xl-auto{margin-left:auto !important;margin-right:auto !important}}@media(min-width: 1400px){.mt-xxl-0{margin-top:0 !important}.me-xxl-0{margin-right:0 !important}.mb-xxl-0{margin-bottom:0 !important}.ms-xxl-0{margin-left:0 !important}.mx-xxl-0{margin-left:0 !important;margin-right:0 !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xxl-0{margin:0 !important}.mt-xxl-1{margin-top:.25rem !important}.me-xxl-1{margin-right:.25rem !important}.mb-xxl-1{margin-bottom:.25rem !important}.ms-xxl-1{margin-left:.25rem !important}.mx-xxl-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-xxl-1{margin:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.me-xxl-2{margin-right:.5rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.ms-xxl-2{margin-left:.5rem !important}.mx-xxl-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-xxl-2{margin:.5rem !important}.mt-xxl-3{margin-top:.75rem !important}.me-xxl-3{margin-right:.75rem !important}.mb-xxl-3{margin-bottom:.75rem !important}.ms-xxl-3{margin-left:.75rem !important}.mx-xxl-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-xxl-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-xxl-3{margin:.75rem !important}.mt-xxl-4{margin-top:1rem !important}.me-xxl-4{margin-right:1rem !important}.mb-xxl-4{margin-bottom:1rem !important}.ms-xxl-4{margin-left:1rem !important}.mx-xxl-4{margin-left:1rem !important;margin-right:1rem !important}.my-xxl-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-xxl-4{margin:1rem !important}.mt-xxl-5{margin-top:1.5rem !important}.me-xxl-5{margin-right:1.5rem !important}.mb-xxl-5{margin-bottom:1.5rem !important}.ms-xxl-5{margin-left:1.5rem !important}.mx-xxl-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-xxl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-xxl-5{margin:1.5rem !important}.mt-xxl-6{margin-top:2rem !important}.me-xxl-6{margin-right:2rem !important}.mb-xxl-6{margin-bottom:2rem !important}.ms-xxl-6{margin-left:2rem !important}.mx-xxl-6{margin-left:2rem !important;margin-right:2rem !important}.my-xxl-6{margin-top:2rem !important;margin-bottom:2rem !important}.m-xxl-6{margin:2rem !important}.mt-xxl-7{margin-top:3rem !important}.me-xxl-7{margin-right:3rem !important}.mb-xxl-7{margin-bottom:3rem !important}.ms-xxl-7{margin-left:3rem !important}.mx-xxl-7{margin-left:3rem !important;margin-right:3rem !important}.my-xxl-7{margin-top:3rem !important;margin-bottom:3rem !important}.m-xxl-7{margin:3rem !important}.mt-xxl-8{margin-top:4rem !important}.me-xxl-8{margin-right:4rem !important}.mb-xxl-8{margin-bottom:4rem !important}.ms-xxl-8{margin-left:4rem !important}.mx-xxl-8{margin-left:4rem !important;margin-right:4rem !important}.my-xxl-8{margin-top:4rem !important;margin-bottom:4rem !important}.m-xxl-8{margin:4rem !important}.pt-xxl-0{padding-top:0 !important}.pe-xxl-0{padding-right:0 !important}.pb-xxl-0{padding-bottom:0 !important}.ps-xxl-0{padding-left:0 !important}.px-xxl-0{padding-left:0 !important;padding-right:0 !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xxl-0{padding:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pe-xxl-1{padding-right:.25rem !important}.pb-xxl-1{padding-bottom:.25rem !important}.ps-xxl-1{padding-left:.25rem !important}.px-xxl-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-xxl-1{padding:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pe-xxl-2{padding-right:.5rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.ps-xxl-2{padding-left:.5rem !important}.px-xxl-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-xxl-2{padding:.5rem !important}.pt-xxl-3{padding-top:.75rem !important}.pe-xxl-3{padding-right:.75rem !important}.pb-xxl-3{padding-bottom:.75rem !important}.ps-xxl-3{padding-left:.75rem !important}.px-xxl-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-xxl-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-xxl-3{padding:.75rem !important}.pt-xxl-4{padding-top:1rem !important}.pe-xxl-4{padding-right:1rem !important}.pb-xxl-4{padding-bottom:1rem !important}.ps-xxl-4{padding-left:1rem !important}.px-xxl-4{padding-left:1rem !important;padding-right:1rem !important}.py-xxl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xxl-4{padding:1rem !important}.pt-xxl-5{padding-top:1.5rem !important}.pe-xxl-5{padding-right:1.5rem !important}.pb-xxl-5{padding-bottom:1.5rem !important}.ps-xxl-5{padding-left:1.5rem !important}.px-xxl-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-xxl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xxl-5{padding:1.5rem !important}.pt-xxl-6{padding-top:2rem !important}.pe-xxl-6{padding-right:2rem !important}.pb-xxl-6{padding-bottom:2rem !important}.ps-xxl-6{padding-left:2rem !important}.px-xxl-6{padding-left:2rem !important;padding-right:2rem !important}.py-xxl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xxl-6{padding:2rem !important}.pt-xxl-7{padding-top:3rem !important}.pe-xxl-7{padding-right:3rem !important}.pb-xxl-7{padding-bottom:3rem !important}.ps-xxl-7{padding-left:3rem !important}.px-xxl-7{padding-left:3rem !important;padding-right:3rem !important}.py-xxl-7{padding-top:3rem !important;padding-bottom:3rem !important}.p-xxl-7{padding:3rem !important}.pt-xxl-8{padding-top:4rem !important}.pe-xxl-8{padding-right:4rem !important}.pb-xxl-8{padding-bottom:4rem !important}.ps-xxl-8{padding-left:4rem !important}.px-xxl-8{padding-left:4rem !important;padding-right:4rem !important}.py-xxl-8{padding-top:4rem !important;padding-bottom:4rem !important}.p-xxl-8{padding:4rem !important}.m-xxl-n1{margin:-0.25rem !important}.mt-xxl-n1{margin-top:-0.25rem !important}.mb-xxl-n1{margin-bottom:-0.25rem !important}.ms-xxl-n1{margin-left:-0.25rem !important}.me-xxl-n1{margin-right:-0.25rem !important}.mx-xxl-n1{margin-left:-0.25rem !important;margin-right:-0.25rem !important}.m-xxl-n2{margin:-0.5rem !important}.mt-xxl-n2{margin-top:-0.5rem !important}.mb-xxl-n2{margin-bottom:-0.5rem !important}.ms-xxl-n2{margin-left:-0.5rem !important}.me-xxl-n2{margin-right:-0.5rem !important}.mx-xxl-n2{margin-left:-0.5rem !important;margin-right:-0.5rem !important}.m-xxl-n3{margin:-0.75rem !important}.mt-xxl-n3{margin-top:-0.75rem !important}.mb-xxl-n3{margin-bottom:-0.75rem !important}.ms-xxl-n3{margin-left:-0.75rem !important}.me-xxl-n3{margin-right:-0.75rem !important}.mx-xxl-n3{margin-left:-0.75rem !important;margin-right:-0.75rem !important}.m-xxl-n4{margin:-1rem !important}.mt-xxl-n4{margin-top:-1rem !important}.mb-xxl-n4{margin-bottom:-1rem !important}.ms-xxl-n4{margin-left:-1rem !important}.me-xxl-n4{margin-right:-1rem !important}.mx-xxl-n4{margin-left:-1rem !important;margin-right:-1rem !important}.m-xxl-n5{margin:-1.5rem !important}.mt-xxl-n5{margin-top:-1.5rem !important}.mb-xxl-n5{margin-bottom:-1.5rem !important}.ms-xxl-n5{margin-left:-1.5rem !important}.me-xxl-n5{margin-right:-1.5rem !important}.mx-xxl-n5{margin-left:-1.5rem !important;margin-right:-1.5rem !important}.m-xxl-n6{margin:-2rem !important}.mt-xxl-n6{margin-top:-2rem !important}.mb-xxl-n6{margin-bottom:-2rem !important}.ms-xxl-n6{margin-left:-2rem !important}.me-xxl-n6{margin-right:-2rem !important}.mx-xxl-n6{margin-left:-2rem !important;margin-right:-2rem !important}.m-xxl-n7{margin:-3rem !important}.mt-xxl-n7{margin-top:-3rem !important}.mb-xxl-n7{margin-bottom:-3rem !important}.ms-xxl-n7{margin-left:-3rem !important}.me-xxl-n7{margin-right:-3rem !important}.mx-xxl-n7{margin-left:-3rem !important;margin-right:-3rem !important}.m-xxl-n8{margin:-4rem !important}.mt-xxl-n8{margin-top:-4rem !important}.mb-xxl-n8{margin-bottom:-4rem !important}.ms-xxl-n8{margin-left:-4rem !important}.me-xxl-n8{margin-right:-4rem !important}.mx-xxl-n8{margin-left:-4rem !important;margin-right:-4rem !important}.m-xxl-auto{margin:auto !important}.mt-xxl-auto{margin-top:auto !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-auto{margin-left:auto !important}.me-xxl-auto{margin-right:auto !important}.mx-xxl-auto{margin-left:auto !important;margin-right:auto !important}}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-grid{display:grid}.d-table{display:table}@media(min-width: 576px){.d-sm-none{display:none}.d-sm-block{display:block}.d-sm-inline{display:inline}.d-sm-inline-block{display:inline-block}.d-sm-flex{display:flex}.d-sm-inline-flex{display:inline-flex}.d-sm-grid{display:grid}.d-sm-table{display:table}}@media(min-width: 768px){.d-md-none{display:none}.d-md-block{display:block}.d-md-inline{display:inline}.d-md-inline-block{display:inline-block}.d-md-flex{display:flex}.d-md-inline-flex{display:inline-flex}.d-md-grid{display:grid}.d-md-table{display:table}}@media(min-width: 992px){.d-lg-none{display:none}.d-lg-block{display:block}.d-lg-inline{display:inline}.d-lg-inline-block{display:inline-block}.d-lg-flex{display:flex}.d-lg-inline-flex{display:inline-flex}.d-lg-grid{display:grid}.d-lg-table{display:table}}@media(min-width: 1200px){.d-xl-none{display:none}.d-xl-block{display:block}.d-xl-inline{display:inline}.d-xl-inline-block{display:inline-block}.d-xl-flex{display:flex}.d-xl-inline-flex{display:inline-flex}.d-xl-grid{display:grid}.d-xl-table{display:table}}@media(min-width: 1400px){.d-xxl-none{display:none}.d-xxl-block{display:block}.d-xxl-inline{display:inline}.d-xxl-inline-block{display:inline-block}.d-xxl-flex{display:flex}.d-xxl-inline-flex{display:inline-flex}.d-xxl-grid{display:grid}.d-xxl-table{display:table}}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-column{flex-direction:column}.flex-column-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-fill{flex:1 1 auto}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.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}.align-items-start{align-items:flex-start}.align-self-start{align-self:flex-start}.align-items-end{align-items:flex-end}.align-self-end{align-self:flex-end}.align-items-center{align-items:center}.align-self-center{align-self:center}.align-items-baseline{align-items:baseline}.align-self-baseline{align-self:baseline}.align-items-stretch{align-items:stretch}.align-self-stretch{align-self:stretch}@media(min-width: 576px){.flex-sm-row{flex-direction:row}.flex-sm-row-reverse{flex-direction:row-reverse}.flex-sm-column{flex-direction:column}.flex-sm-column-reverse{flex-direction:column-reverse}.flex-sm-wrap{flex-wrap:wrap}.flex-sm-nowrap{flex-wrap:nowrap}.flex-sm-fill{flex:1 1 auto}.flex-sm-grow-0{flex-grow:0}.flex-sm-grow-1{flex-grow:1}.flex-sm-shrink-0{flex-shrink:0}.flex-sm-shrink-1{flex-shrink:1}.justify-content-sm-start{justify-content:flex-start}.justify-content-sm-end{justify-content:flex-end}.justify-content-sm-center{justify-content:center}.justify-content-sm-between{justify-content:space-between}.justify-content-sm-around{justify-content:space-around}.justify-content-sm-evenly{justify-content:space-evenly}.align-items-sm-start{align-items:flex-start}.align-self-sm-start{align-self:flex-start}.align-items-sm-end{align-items:flex-end}.align-self-sm-end{align-self:flex-end}.align-items-sm-center{align-items:center}.align-self-sm-center{align-self:center}.align-items-sm-baseline{align-items:baseline}.align-self-sm-baseline{align-self:baseline}.align-items-sm-stretch{align-items:stretch}.align-self-sm-stretch{align-self:stretch}}@media(min-width: 768px){.flex-md-row{flex-direction:row}.flex-md-row-reverse{flex-direction:row-reverse}.flex-md-column{flex-direction:column}.flex-md-column-reverse{flex-direction:column-reverse}.flex-md-wrap{flex-wrap:wrap}.flex-md-nowrap{flex-wrap:nowrap}.flex-md-fill{flex:1 1 auto}.flex-md-grow-0{flex-grow:0}.flex-md-grow-1{flex-grow:1}.flex-md-shrink-0{flex-shrink:0}.flex-md-shrink-1{flex-shrink:1}.justify-content-md-start{justify-content:flex-start}.justify-content-md-end{justify-content:flex-end}.justify-content-md-center{justify-content:center}.justify-content-md-between{justify-content:space-between}.justify-content-md-around{justify-content:space-around}.justify-content-md-evenly{justify-content:space-evenly}.align-items-md-start{align-items:flex-start}.align-self-md-start{align-self:flex-start}.align-items-md-end{align-items:flex-end}.align-self-md-end{align-self:flex-end}.align-items-md-center{align-items:center}.align-self-md-center{align-self:center}.align-items-md-baseline{align-items:baseline}.align-self-md-baseline{align-self:baseline}.align-items-md-stretch{align-items:stretch}.align-self-md-stretch{align-self:stretch}}@media(min-width: 992px){.flex-lg-row{flex-direction:row}.flex-lg-row-reverse{flex-direction:row-reverse}.flex-lg-column{flex-direction:column}.flex-lg-column-reverse{flex-direction:column-reverse}.flex-lg-wrap{flex-wrap:wrap}.flex-lg-nowrap{flex-wrap:nowrap}.flex-lg-fill{flex:1 1 auto}.flex-lg-grow-0{flex-grow:0}.flex-lg-grow-1{flex-grow:1}.flex-lg-shrink-0{flex-shrink:0}.flex-lg-shrink-1{flex-shrink:1}.justify-content-lg-start{justify-content:flex-start}.justify-content-lg-end{justify-content:flex-end}.justify-content-lg-center{justify-content:center}.justify-content-lg-between{justify-content:space-between}.justify-content-lg-around{justify-content:space-around}.justify-content-lg-evenly{justify-content:space-evenly}.align-items-lg-start{align-items:flex-start}.align-self-lg-start{align-self:flex-start}.align-items-lg-end{align-items:flex-end}.align-self-lg-end{align-self:flex-end}.align-items-lg-center{align-items:center}.align-self-lg-center{align-self:center}.align-items-lg-baseline{align-items:baseline}.align-self-lg-baseline{align-self:baseline}.align-items-lg-stretch{align-items:stretch}.align-self-lg-stretch{align-self:stretch}}@media(min-width: 1200px){.flex-xl-row{flex-direction:row}.flex-xl-row-reverse{flex-direction:row-reverse}.flex-xl-column{flex-direction:column}.flex-xl-column-reverse{flex-direction:column-reverse}.flex-xl-wrap{flex-wrap:wrap}.flex-xl-nowrap{flex-wrap:nowrap}.flex-xl-fill{flex:1 1 auto}.flex-xl-grow-0{flex-grow:0}.flex-xl-grow-1{flex-grow:1}.flex-xl-shrink-0{flex-shrink:0}.flex-xl-shrink-1{flex-shrink:1}.justify-content-xl-start{justify-content:flex-start}.justify-content-xl-end{justify-content:flex-end}.justify-content-xl-center{justify-content:center}.justify-content-xl-between{justify-content:space-between}.justify-content-xl-around{justify-content:space-around}.justify-content-xl-evenly{justify-content:space-evenly}.align-items-xl-start{align-items:flex-start}.align-self-xl-start{align-self:flex-start}.align-items-xl-end{align-items:flex-end}.align-self-xl-end{align-self:flex-end}.align-items-xl-center{align-items:center}.align-self-xl-center{align-self:center}.align-items-xl-baseline{align-items:baseline}.align-self-xl-baseline{align-self:baseline}.align-items-xl-stretch{align-items:stretch}.align-self-xl-stretch{align-self:stretch}}@media(min-width: 1400px){.flex-xxl-row{flex-direction:row}.flex-xxl-row-reverse{flex-direction:row-reverse}.flex-xxl-column{flex-direction:column}.flex-xxl-column-reverse{flex-direction:column-reverse}.flex-xxl-wrap{flex-wrap:wrap}.flex-xxl-nowrap{flex-wrap:nowrap}.flex-xxl-fill{flex:1 1 auto}.flex-xxl-grow-0{flex-grow:0}.flex-xxl-grow-1{flex-grow:1}.flex-xxl-shrink-0{flex-shrink:0}.flex-xxl-shrink-1{flex-shrink:1}.justify-content-xxl-start{justify-content:flex-start}.justify-content-xxl-end{justify-content:flex-end}.justify-content-xxl-center{justify-content:center}.justify-content-xxl-between{justify-content:space-between}.justify-content-xxl-around{justify-content:space-around}.justify-content-xxl-evenly{justify-content:space-evenly}.align-items-xxl-start{align-items:flex-start}.align-self-xxl-start{align-self:flex-start}.align-items-xxl-end{align-items:flex-end}.align-self-xxl-end{align-self:flex-end}.align-items-xxl-center{align-items:center}.align-self-xxl-center{align-self:center}.align-items-xxl-baseline{align-items:baseline}.align-self-xxl-baseline{align-self:baseline}.align-items-xxl-stretch{align-items:stretch}.align-self-xxl-stretch{align-self:stretch}}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.5rem}.gap-6{gap:2rem}.gap-7{gap:3rem}.gap-8{gap:4rem}.text-start{text-align:left}.text-center{text-align:center}.text-end{text-align:right}@media(min-width: 576px){.text-sm-start{text-align:left}.text-sm-center{text-align:center}.text-sm-end{text-align:right}}@media(min-width: 768px){.text-md-start{text-align:left}.text-md-center{text-align:center}.text-md-end{text-align:right}}@media(min-width: 992px){.text-lg-start{text-align:left}.text-lg-center{text-align:center}.text-lg-end{text-align:right}}@media(min-width: 1200px){.text-xl-start{text-align:left}.text-xl-center{text-align:center}.text-xl-end{text-align:right}}@media(min-width: 1400px){.text-xxl-start{text-align:left}.text-xxl-center{text-align:center}.text-xxl-end{text-align:right}}.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-base{font-size:1rem}.fs-lg{font-size:1.125rem}.fs-xl{font-size:1.25rem}.fs-2xl{font-size:1.5rem}.fs-3xl{font-size:1.875rem}.fs-4xl{font-size:2.25rem}.fs-5xl{font-size:3.25rem}.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-black{font-weight:800}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.text-decoration-underline{text-decoration:underline}.text-decoration-none{text-decoration:none}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-nowrap{white-space:nowrap}.text-break{overflow-wrap:break-word}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lh-1{line-height:1}.lh-base{line-height:1.6}.lh-lg{line-height:1.8}.font-monospace{font-family:ui-monospace,SFMono-Regular,"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace}.text-primary{color:#6d4af5 !important}.bg-primary{background-color:#6d4af5 !important}.border-primary{border-color:#6d4af5 !important}.text-secondary{color:#7c8aa5 !important}.bg-secondary{background-color:#7c8aa5 !important}.border-secondary{border-color:#7c8aa5 !important}.text-success{color:#34d399 !important}.bg-success{background-color:#34d399 !important}.border-success{border-color:#34d399 !important}.text-danger{color:#fb5b78 !important}.bg-danger{background-color:#fb5b78 !important}.border-danger{border-color:#fb5b78 !important}.text-warning{color:#fbbf24 !important}.bg-warning{background-color:#fbbf24 !important}.border-warning{border-color:#fbbf24 !important}.text-info{color:#22d3ee !important}.bg-info{background-color:#22d3ee !important}.border-info{border-color:#22d3ee !important}.text-accent{color:#e879f9 !important}.bg-accent{background-color:#e879f9 !important}.border-accent{border-color:#e879f9 !important}.text-light{color:#e7ecf5 !important}.bg-light{background-color:#e7ecf5 !important}.border-light{border-color:#e7ecf5 !important}.text-dark{color:#0b0f1d !important}.bg-dark{background-color:#0b0f1d !important}.border-dark{border-color:#0b0f1d !important}.text-white{color:#fff !important}.text-body{color:var(--fv-body-color) !important}.text-muted{color:var(--fv-muted) !important}.bg-white{background-color:#fff !important}.bg-body{background-color:var(--fv-body-bg) !important}.bg-surface{background-color:var(--fv-surface-solid) !important}.bg-transparent{background-color:rgba(0,0,0,0) !important}.text-gray-100{color:#f1f5f9 !important}.bg-gray-100{background-color:#f1f5f9 !important}.text-gray-200{color:#e2e8f0 !important}.bg-gray-200{background-color:#e2e8f0 !important}.text-gray-300{color:#cbd5e1 !important}.bg-gray-300{background-color:#cbd5e1 !important}.text-gray-400{color:#94a3b8 !important}.bg-gray-400{background-color:#94a3b8 !important}.text-gray-500{color:#64748b !important}.bg-gray-500{background-color:#64748b !important}.text-gray-600{color:#475569 !important}.bg-gray-600{background-color:#475569 !important}.text-gray-700{color:#334155 !important}.bg-gray-700{background-color:#334155 !important}.text-gray-800{color:#1e293b !important}.bg-gray-800{background-color:#1e293b !important}.text-gray-900{color:#0f172a !important}.bg-gray-900{background-color:#0f172a !important}.border{border:1px solid var(--fv-border-color) !important}.border-0{border:0 !important}.border-top{border-top:1px solid var(--fv-border-color) !important}.border-end{border-right:1px solid var(--fv-border-color) !important}.border-bottom{border-bottom:1px solid var(--fv-border-color) !important}.border-start{border-left:1px solid var(--fv-border-color) !important}.rounded-none{border-radius:0 !important}.rounded-sm{border-radius:.375rem !important}.rounded-md{border-radius:.625rem !important}.rounded-lg{border-radius:.875rem !important}.rounded-xl{border-radius:1.125rem !important}.rounded-2xl{border-radius:1.5rem !important}.rounded-pill{border-radius:50rem !important}.rounded-full{border-radius:50% !important}.rounded{border-radius:.75rem !important}.rounded-0{border-radius:0 !important}.rounded-circle{border-radius:50% !important}.shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,.3) !important}.shadow-md{box-shadow:0 8px 20px rgba(0,0,0,.35) !important}.shadow-lg{box-shadow:0 18px 44px rgba(0,0,0,.45) !important}.shadow-xl{box-shadow:0 30px 70px rgba(0,0,0,.55) !important}.shadow-none{box-shadow:none !important}.w-25{width:25%}.h-25{height:25%}.w-50{width:50%}.h-50{height:50%}.w-75{width:75%}.h-75{height:75%}.w-100{width:100%}.h-100{height:100%}.w-auto{width:auto}.h-auto{height:auto}.mw-100{max-width:100%}.mh-100{max-height:100%}.vw-100{width:100vw}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.bottom-0{bottom:0}.start-0{left:0}.end-0{right:0}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.z-dropdown{z-index:1000}.z-sticky{z-index:1020}.z-fixed{z-index:1030}.z-modal{z-index:1050}.z-tooltip{z-index:1070}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;clip:rect(0, 0, 0, 0);clip-path:inset(50%);border:0}.user-select-none{user-select:none}.user-select-all{user-select:all}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.cursor-pointer{cursor:pointer}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.glass{background-color:var(--fv-glass-bg);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1)}.glass-strong{background-color:var(--fv-glass-bg);background-color:var(--fv-glass-bg-strong);backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));-webkit-backdrop-filter:blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));border:1px solid var(--fv-glass-border);box-shadow:var(--fv-shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.1)}.glass-flat{backdrop-filter:none;-webkit-backdrop-filter:none}.bg-gradient-primary{background-image:linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%) !important}.bg-gradient-accent{background-image:linear-gradient(135deg, #e879f9 0%, #6d4af5 100%) !important}.bg-gradient-sunset{background-image:linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%) !important}.bg-gradient-aurora{background-image:linear-gradient(135deg, #34d399 0%, #22d3ee 100%) !important}.text-gradient{background-image:var(--fv-gradient-primary);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0)}.text-gradient-primary{background-image:linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0)}.text-gradient-accent{background-image:linear-gradient(135deg, #e879f9 0%, #6d4af5 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0)}.text-gradient-sunset{background-image:linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0)}.text-gradient-aurora{background-image:linear-gradient(135deg, #34d399 0%, #22d3ee 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0)}[data-theme=light] [class*=text-gradient]{filter:brightness(0.5) saturate(1.4)}.glow-primary{box-shadow:0 0 26px rgba(109,74,245,.55) !important}.glow-accent{box-shadow:0 0 26px rgba(232,121,249,.55) !important}.glow-info{box-shadow:0 0 26px rgba(34,211,238,.55) !important}.glow-success{box-shadow:0 0 26px rgba(52,211,153,.5) !important}.glow-danger{box-shadow:0 0 26px rgba(251,91,120,.5) !important}.glow-warning{box-shadow:0 0 26px rgba(251,191,36,.5) !important}.glow{box-shadow:var(--fv-glow-primary) !important}.glow-none{box-shadow:none !important}.text-glow{text-shadow:0 0 18px rgba(109,74,245,.65)}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px)}@keyframes fv-gradient-pan{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.bg-animated{background-size:200% 200%;animation:fv-gradient-pan 9s ease infinite}@keyframes fv-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:fv-float 6s ease-in-out infinite}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass,.glass-strong,.navbar,.card,.form-control,.form-select{background-color:var(--fv-surface-solid)}}@media(prefers-reduced-motion: reduce){.bg-animated,.animate-float{animation:none}}.bg-mesh-aurora{background-color:var(--fv-body-bg);background-image:radial-gradient(55rem 55rem at 80% -10%, rgba(109, 74, 245, 0.35), transparent 60%),radial-gradient(45rem 45rem at -10% 25%, rgba(34, 211, 238, 0.28), transparent 58%),radial-gradient(50rem 50rem at 55% 120%, rgba(232, 121, 249, 0.24), transparent 58%);background-repeat:no-repeat}.bg-mesh-sunset{background-color:var(--fv-body-bg);background-image:radial-gradient(55rem 55rem at 85% 0%, rgba(251, 191, 36, 0.3), transparent 60%),radial-gradient(50rem 50rem at 8% 18%, rgba(251, 91, 120, 0.28), transparent 58%),radial-gradient(45rem 45rem at 60% 120%, rgba(232, 121, 249, 0.22), transparent 58%);background-repeat:no-repeat}.bg-mesh-ocean{background-color:var(--fv-body-bg);background-image:radial-gradient(55rem 55rem at 80% -10%, rgba(34, 211, 238, 0.32), transparent 60%),radial-gradient(50rem 50rem at 0% 30%, rgba(52, 211, 153, 0.24), transparent 58%),radial-gradient(45rem 45rem at 50% 120%, rgba(109, 74, 245, 0.22), transparent 58%);background-repeat:no-repeat}.bg-mesh-nebula{background-color:var(--fv-body-bg);background-image:radial-gradient(50rem 50rem at 75% 8%, rgba(109, 74, 245, 0.4), transparent 55%),radial-gradient(40rem 40rem at 18% 28%, rgba(232, 121, 249, 0.3), transparent 55%),radial-gradient(45rem 45rem at 55% 115%, rgba(34, 211, 238, 0.25), transparent 58%);background-repeat:no-repeat}.bg-mesh{background-color:var(--fv-body-bg);background-image:radial-gradient(55rem 55rem at 80% -10%, rgba(109, 74, 245, 0.35), transparent 60%),radial-gradient(45rem 45rem at -10% 25%, rgba(34, 211, 238, 0.28), transparent 58%),radial-gradient(50rem 50rem at 55% 120%, rgba(232, 121, 249, 0.24), transparent 58%);background-repeat:no-repeat}.bg-grid{background-image:linear-gradient(var(--fv-bg-pattern) 1px, transparent 1px),linear-gradient(90deg, var(--fv-bg-pattern) 1px, transparent 1px);background-size:2rem 2rem}.bg-graph{background-image:linear-gradient(var(--fv-bg-pattern) 1px, transparent 1px),linear-gradient(90deg, var(--fv-bg-pattern) 1px, transparent 1px);background-size:.75rem .75rem}.bg-dots{background-image:radial-gradient(var(--fv-bg-pattern) 1.2px, transparent 1.2px);background-size:1.25rem 1.25rem}.bg-lines{background-image:repeating-linear-gradient(45deg, var(--fv-bg-pattern) 0, var(--fv-bg-pattern) 1px, transparent 1px, transparent 12px)}.bg-noise{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}.bg-pattern-sm{background-size:1rem 1rem}.bg-pattern-lg{background-size:3rem 3rem}.bg-spotlight{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(109, 74, 245, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-primary{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(109, 74, 245, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-secondary{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(124, 138, 165, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-success{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(52, 211, 153, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-danger{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(251, 91, 120, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-warning{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(251, 191, 36, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-info{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(34, 211, 238, 0.3), transparent 70%);background-repeat:no-repeat}.bg-spotlight-accent{background-color:var(--fv-body-bg);background-image:radial-gradient(42rem 26rem at 50% -12%, rgba(232, 121, 249, 0.3), transparent 70%);background-repeat:no-repeat}.bg-fade{-webkit-mask-image:radial-gradient(ellipse 80% 65% at 50% 0%, #000 35%, transparent 100%);mask-image:radial-gradient(ellipse 80% 65% at 50% 0%, #000 35%, transparent 100%)}.bg-fade-b{-webkit-mask-image:linear-gradient(to bottom, #000 55%, transparent 100%);mask-image:linear-gradient(to bottom, #000 55%, transparent 100%)}.bg-fade-x{-webkit-mask-image:linear-gradient(to right, transparent, #000 18%, #000 82%, transparent);mask-image:linear-gradient(to right, transparent, #000 18%, #000 82%, transparent)}@keyframes fv-bg-drift{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}.bg-drift{background-size:150% 150%;animation:fv-bg-drift 22s ease-in-out infinite}@media(prefers-reduced-motion: reduce){.bg-drift{animation:none}}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "farvist",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "A lightweight (~19 KB) glassmorphism CSS framework — frosted surfaces, neon glow, gradients, 30+ components and dark/light themes. A drop-in alternative to Bootstrap and Tailwind.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "FloKuersten",
|
|
7
|
+
"homepage": "https://farvist.com",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/FloKuersten/farvist.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/FloKuersten/farvist/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"css",
|
|
17
|
+
"sass",
|
|
18
|
+
"scss",
|
|
19
|
+
"framework",
|
|
20
|
+
"glassmorphism",
|
|
21
|
+
"glass",
|
|
22
|
+
"ui-kit",
|
|
23
|
+
"design-tokens",
|
|
24
|
+
"dark-mode",
|
|
25
|
+
"utility-classes",
|
|
26
|
+
"bootstrap-alternative",
|
|
27
|
+
"tailwind-alternative"
|
|
28
|
+
],
|
|
29
|
+
"main": "dist/farvist.css",
|
|
30
|
+
"style": "dist/farvist.css",
|
|
31
|
+
"sass": "scss/farvist.scss",
|
|
32
|
+
"sideEffects": [
|
|
33
|
+
"dist/*.css",
|
|
34
|
+
"assets/farvist.js"
|
|
35
|
+
],
|
|
36
|
+
"files": [
|
|
37
|
+
"scss",
|
|
38
|
+
"dist",
|
|
39
|
+
"assets"
|
|
40
|
+
],
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "sass scss/farvist.scss dist/farvist.css --style=expanded --no-source-map",
|
|
43
|
+
"build:min": "sass scss/farvist.scss dist/farvist.min.css --style=compressed --no-source-map",
|
|
44
|
+
"build:all": "npm run build && npm run build:min",
|
|
45
|
+
"watch": "sass --watch scss/farvist.scss dist/farvist.css --style=expanded",
|
|
46
|
+
"dev": "npm run build:all",
|
|
47
|
+
"deploy": "powershell -NoProfile -ExecutionPolicy Bypass -File deploy.ps1",
|
|
48
|
+
"prepublishOnly": "npm run build:all"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"sass": "^1.83.0"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Farvist · Abstracts · Functions
|
|
3
|
+
// Pure helpers used by mixins, components and the utility generators.
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use 'sass:map';
|
|
7
|
+
@use 'sass:math';
|
|
8
|
+
@use 'sass:color';
|
|
9
|
+
@use 'variables' as *;
|
|
10
|
+
|
|
11
|
+
// Look up a theme color by name, warning loudly on a typo.
|
|
12
|
+
@function color($name) {
|
|
13
|
+
@if map.has-key($theme-colors, $name) {
|
|
14
|
+
@return map.get($theme-colors, $name);
|
|
15
|
+
}
|
|
16
|
+
@warn "color(): `#{$name}` is not a theme color. Valid keys: #{map.keys($theme-colors)}.";
|
|
17
|
+
@return null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Look up a spacer value (e.g. spacer(4) -> 1rem).
|
|
21
|
+
@function spacer($key) {
|
|
22
|
+
@if not map.has-key($spacers, $key) {
|
|
23
|
+
@warn "spacer(): `#{$key}` is not in $spacers.";
|
|
24
|
+
@return 0;
|
|
25
|
+
}
|
|
26
|
+
@return map.get($spacers, $key);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// The min-width for a breakpoint, or null for the zero-width base (`xs`).
|
|
30
|
+
@function breakpoint-min($name) {
|
|
31
|
+
$min: map.get($grid-breakpoints, $name);
|
|
32
|
+
@if $min == 0 {
|
|
33
|
+
@return null;
|
|
34
|
+
}
|
|
35
|
+
@return $min;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// The infix injected into responsive class names: '' for xs, '-md' otherwise.
|
|
39
|
+
@function breakpoint-infix($name) {
|
|
40
|
+
@if breakpoint-min($name) == null {
|
|
41
|
+
@return '';
|
|
42
|
+
}
|
|
43
|
+
@return '-#{$name}';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// px -> rem against the configured root font size. Accepts unitless or px.
|
|
47
|
+
@function rem($px, $base: $font-size-root) {
|
|
48
|
+
@if math.is-unitless($px) {
|
|
49
|
+
$px: $px * 1px;
|
|
50
|
+
}
|
|
51
|
+
@return math.div($px, $base) * 1rem;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// WCAG relative luminance of a single 0–255 channel (sRGB → linear).
|
|
55
|
+
@function _channel-lin($value) {
|
|
56
|
+
$v: math.div($value, 255);
|
|
57
|
+
@if $v <= 0.03928 {
|
|
58
|
+
@return math.div($v, 12.92);
|
|
59
|
+
}
|
|
60
|
+
@return math.pow(math.div($v + 0.055, 1.055), 2.4);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// WCAG relative luminance of a color (0 = black, 1 = white).
|
|
64
|
+
@function relative-luminance($color) {
|
|
65
|
+
$r: _channel-lin(color.channel($color, 'red', $space: rgb));
|
|
66
|
+
$g: _channel-lin(color.channel($color, 'green', $space: rgb));
|
|
67
|
+
$b: _channel-lin(color.channel($color, 'blue', $space: rgb));
|
|
68
|
+
@return 0.2126 * $r + 0.7152 * $g + 0.0722 * $b;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// WCAG contrast ratio between two colors (1 → 21).
|
|
72
|
+
@function contrast-ratio($c1, $c2) {
|
|
73
|
+
$l1: relative-luminance($c1);
|
|
74
|
+
$l2: relative-luminance($c2);
|
|
75
|
+
@return math.div(math.max($l1, $l2) + 0.05, math.min($l1, $l2) + 0.05);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Choose the readable foreground (dark or light) for a background — whichever
|
|
79
|
+
// yields the higher WCAG contrast ratio. More accurate than the YIQ heuristic.
|
|
80
|
+
@function contrast-color($bg, $dark: $dark, $light: $white) {
|
|
81
|
+
@if contrast-ratio($bg, $dark) >= contrast-ratio($bg, $light) {
|
|
82
|
+
@return $dark;
|
|
83
|
+
}
|
|
84
|
+
@return $light;
|
|
85
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Farvist · Abstracts · Forward barrel
|
|
3
|
+
// A single entry point so consumers can `@use '../abstracts' as *;` and reach
|
|
4
|
+
// every variable, function and mixin in one namespace.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@forward 'variables';
|
|
8
|
+
@forward 'functions';
|
|
9
|
+
@forward 'mixins';
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Farvist · Abstracts · Mixins
|
|
3
|
+
// Reusable blocks of declarations. Kept separate from utilities so components
|
|
4
|
+
// and utilities can both pull from them.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@use 'sass:color';
|
|
8
|
+
@use 'variables' as *;
|
|
9
|
+
@use 'functions' as *;
|
|
10
|
+
|
|
11
|
+
// Apply `@content` at a min-width breakpoint. The zero-width base (`xs`)
|
|
12
|
+
// emits the content with no media query, keeping the framework mobile-first.
|
|
13
|
+
@mixin media-up($name) {
|
|
14
|
+
$min: breakpoint-min($name);
|
|
15
|
+
@if $min {
|
|
16
|
+
@media (min-width: $min) {
|
|
17
|
+
@content;
|
|
18
|
+
}
|
|
19
|
+
} @else {
|
|
20
|
+
@content;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Center children on both axes.
|
|
25
|
+
@mixin flex-center {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Frosted-glass surface. Reads the runtime `--fv-glass-*` custom properties so
|
|
32
|
+
// the same mixin produces dark or light glass depending on the active theme.
|
|
33
|
+
// Pass `$strong: true` for elevated surfaces (navbar, modals).
|
|
34
|
+
@mixin glass($strong: false) {
|
|
35
|
+
background-color: var(--fv-glass-bg);
|
|
36
|
+
@if $strong {
|
|
37
|
+
background-color: var(--fv-glass-bg-strong);
|
|
38
|
+
}
|
|
39
|
+
backdrop-filter: blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));
|
|
40
|
+
-webkit-backdrop-filter: blur(var(--fv-glass-blur)) saturate(var(--fv-glass-saturate));
|
|
41
|
+
border: $border-width solid var(--fv-glass-border);
|
|
42
|
+
// Outer depth + a 1px inner top highlight that sells the "pane of glass" look.
|
|
43
|
+
box-shadow:
|
|
44
|
+
var(--fv-shadow-lg),
|
|
45
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.10);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Hide an element visually while keeping it available to screen readers.
|
|
49
|
+
@mixin visually-hidden {
|
|
50
|
+
position: absolute !important;
|
|
51
|
+
width: 1px;
|
|
52
|
+
height: 1px;
|
|
53
|
+
padding: 0;
|
|
54
|
+
margin: -1px;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
clip: rect(0, 0, 0, 0);
|
|
58
|
+
clip-path: inset(50%);
|
|
59
|
+
border: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Emit the custom-property set that paints a solid button. `.btn` reads these
|
|
63
|
+
// `--fv-btn-*` variables, so one mixin call themes every state at once.
|
|
64
|
+
@mixin button-variant($bg, $color: null) {
|
|
65
|
+
$text: contrast-color($bg);
|
|
66
|
+
@if $color {
|
|
67
|
+
$text: $color;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
--fv-btn-bg: #{$bg};
|
|
71
|
+
--fv-btn-color: #{$text};
|
|
72
|
+
--fv-btn-border: #{$bg};
|
|
73
|
+
--fv-btn-hover-bg: #{color.scale($bg, $lightness: 8%)};
|
|
74
|
+
--fv-btn-hover-border: #{color.scale($bg, $lightness: 12%)};
|
|
75
|
+
--fv-btn-active-bg: #{color.scale($bg, $lightness: -10%)};
|
|
76
|
+
--fv-btn-focus-ring: #{rgba($bg, 0.45)};
|
|
77
|
+
--fv-btn-glow: 0 0 24px #{rgba($bg, 0.55)};
|
|
78
|
+
}
|