@layer reset, base, layout, components, utilities;
@layer base {
  :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-primary-text: rgb(149.88, 124.68, 247.8);
    --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-primary-text: #6d4af5;
    --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;
  }
}
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  * {
    margin: 0;
  }
  html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-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 0.2s ease, color 0.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: var(--fv-primary-text);
    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: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
    }
  }
}
@layer base {
  h1,
  .h1 {
    margin-bottom: 0.75rem;
    font-size: clamp(1.75rem, 6vw, 2.25rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  h2,
  .h2 {
    margin-bottom: 0.75rem;
    font-size: clamp(1.5rem, 5vw, 1.875rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  h3,
  .h3 {
    margin-bottom: 0.75rem;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  h4,
  .h4 {
    margin-bottom: 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  h5,
  .h5 {
    margin-bottom: 0.75rem;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  h6,
  .h6 {
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  p {
    margin-bottom: 1rem;
  }
  a {
    transition: color 0.2s ease;
  }
  p a:not([class]),
  li a:not([class]) {
    text-decoration: underline;
  }
  small,
  .text-small {
    font-size: 0.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: 0.2em 0.45em;
    font-size: 0.875em;
    color: var(--fv-info);
    background-color: var(--fv-code-bg);
    border: 1px solid var(--fv-border-color);
    border-radius: 0.375rem;
  }
  pre {
    padding: 1rem;
    margin-bottom: 1rem;
    overflow: auto;
    font-size: 0.875rem;
    background-color: var(--fv-code-bg);
    border: 1px solid var(--fv-border-color);
    border-radius: 0.625rem;
  }
  pre code {
    padding: 0;
    color: inherit;
    background: none;
    border: 0;
  }
  kbd {
    padding: 0.15em 0.45em;
    font-size: 0.85em;
    color: var(--fv-body-color);
    background-color: var(--fv-code-bg);
    border: 1px solid var(--fv-border-color);
    border-radius: 0.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;
  }
}
@layer layout {
  .container,
  .container-fluid {
    width: 100%;
    margin-inline: auto;
    padding-inline: 1rem;
  }
  @media (min-width: 576px) {
    .container,
    .container-fluid {
      padding-inline: 0.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: 0.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 {
    -moz-column-gap: 0;
         column-gap: 0;
  }
  .gy-0 {
    row-gap: 0;
  }
  .g-1 {
    gap: 0.25rem;
  }
  .gx-1 {
    -moz-column-gap: 0.25rem;
         column-gap: 0.25rem;
  }
  .gy-1 {
    row-gap: 0.25rem;
  }
  .g-2 {
    gap: 0.5rem;
  }
  .gx-2 {
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
  }
  .gy-2 {
    row-gap: 0.5rem;
  }
  .g-3 {
    gap: 0.75rem;
  }
  .gx-3 {
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
  }
  .gy-3 {
    row-gap: 0.75rem;
  }
  .g-4 {
    gap: 1rem;
  }
  .gx-4 {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
  }
  .gy-4 {
    row-gap: 1rem;
  }
  .g-5 {
    gap: 1.5rem;
  }
  .gx-5 {
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
  }
  .gy-5 {
    row-gap: 1.5rem;
  }
  .g-6 {
    gap: 2rem;
  }
  .gx-6 {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }
  .gy-6 {
    row-gap: 2rem;
  }
  .g-7 {
    gap: 3rem;
  }
  .gx-7 {
    -moz-column-gap: 3rem;
         column-gap: 3rem;
  }
  .gy-7 {
    row-gap: 3rem;
  }
  .g-8 {
    gap: 4rem;
  }
  .gx-8 {
    -moz-column-gap: 4rem;
         column-gap: 4rem;
  }
  .gy-8 {
    row-gap: 4rem;
  }
}
@layer components {
  .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: 0.5rem;
    padding: 0.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;
    -webkit-user-select: none;
       -moz-user-select: none;
            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 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.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: 0.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: var(--fv-primary-text, #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: var(--fv-secondary-text, #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: var(--fv-success-text, #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: var(--fv-danger-text, #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: var(--fv-warning-text, #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: var(--fv-info-text, #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: var(--fv-accent-text, #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: var(--fv-light-text, #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: var(--fv-dark-text, #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: transparent;
  }
  .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: transparent;
  }
  .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: transparent;
  }
  .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: transparent;
  }
  .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 rgba(255, 255, 255, 0.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-text);
    --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: 0.25rem 0.75rem;
    font-size: 0.875rem;
  }
  @media (pointer: coarse) {
    .btn-sm {
      min-height: 44px;
      padding-block: 0.5rem;
    }
  }
  .btn-lg {
    padding: 0.75rem 2rem;
    font-size: 1.125rem;
  }
  .btn-block {
    display: flex;
    width: 100%;
  }
}
@layer components {
  .badge {
    display: inline-flex;
    align-items: center;
    padding: 0.35em 0.65em;
    font-size: 0.75em;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    color: #ffffff;
    background-color: #7c8aa5;
    border: 1px solid transparent;
    border-radius: 0.375rem;
  }
  .badge-primary {
    color: #ffffff;
    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: #ffffff;
    background-color: #0b0f1d;
  }
  .badge-soft-primary {
    color: rgb(174.7, 155.45, 249.5);
    background-color: rgba(109, 74, 245, 0.16);
    border-color: rgba(109, 74, 245, 0.35);
  }
  .badge-soft-secondary {
    color: rgb(182.95, 190.65, 205.5);
    background-color: rgba(124, 138, 165, 0.16);
    border-color: rgba(124, 138, 165, 0.35);
  }
  .badge-soft-success {
    color: rgb(143.35, 230.8, 198.9);
    background-color: rgba(52, 211, 153, 0.16);
    border-color: rgba(52, 211, 153, 0.35);
  }
  .badge-soft-danger {
    color: rgb(252.8, 164.8, 180.75);
    background-color: rgba(251, 91, 120, 0.16);
    border-color: rgba(251, 91, 120, 0.35);
  }
  .badge-soft-warning {
    color: rgb(252.8, 219.8, 134.55);
    background-color: rgba(251, 191, 36, 0.16);
    border-color: rgba(251, 191, 36, 0.35);
  }
  .badge-soft-info {
    color: rgb(133.45, 230.8, 245.65);
    background-color: rgba(34, 211, 238, 0.16);
    border-color: rgba(34, 211, 238, 0.35);
  }
  .badge-soft-accent {
    color: rgb(242.35, 181.3, 251.7);
    background-color: rgba(232, 121, 249, 0.16);
    border-color: rgba(232, 121, 249, 0.35);
  }
  .badge-soft-light {
    color: rgb(241.8, 244.55, 249.5);
    background-color: rgba(231, 236, 245, 0.16);
    border-color: rgba(231, 236, 245, 0.35);
  }
  .badge-soft-dark {
    color: rgb(120.8, 123, 130.7);
    background-color: rgba(11, 15, 29, 0.16);
    border-color: rgba(11, 15, 29, 0.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;
  }
}
@layer components {
  .alert {
    position: relative;
    color: var(--fv-body-color);
    padding: 1rem 1.5rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.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: 0.5rem;
    font-weight: 700;
  }
  .alert > :last-child {
    margin-bottom: 0;
  }
  .alert-primary {
    background-color: rgba(109, 74, 245, 0.13);
    border-color: rgba(109, 74, 245, 0.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, 0.13);
    border-color: rgba(124, 138, 165, 0.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, 0.13);
    border-color: rgba(52, 211, 153, 0.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, 0.13);
    border-color: rgba(251, 91, 120, 0.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, 0.13);
    border-color: rgba(251, 191, 36, 0.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, 0.13);
    border-color: rgba(34, 211, 238, 0.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, 0.13);
    border-color: rgba(232, 121, 249, 0.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, 0.13);
    border-color: rgba(231, 236, 245, 0.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, 0.13);
    border-color: rgba(11, 15, 29, 0.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);
  }
}
@layer components {
  .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 rgba(255, 255, 255, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.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, 0.5);
    box-shadow: var(--fv-shadow-xl), var(--fv-glow-primary);
  }
  .card-body {
    flex: 1 1 auto;
    padding: 1.5rem;
  }
  .card-title {
    margin-bottom: 0.5rem;
    font-size: 1.25rem;
    font-weight: 700;
  }
  .card-subtitle {
    margin-bottom: 0.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%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@layer components {
  .form-label {
    display: inline-block;
    margin-bottom: 0.5rem;
    font-weight: 500;
  }
  .form-control,
  .form-select {
    display: block;
    width: 100%;
    padding: 0.5rem 0.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 0.2s ease, box-shadow 0.2s ease;
  }
  .form-control::-moz-placeholder, .form-select::-moz-placeholder {
    color: var(--fv-muted);
    opacity: 0.8;
  }
  .form-control::placeholder,
  .form-select::placeholder {
    color: var(--fv-muted);
    opacity: 0.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: 0.55;
    cursor: not-allowed;
  }
  .form-select {
    -webkit-appearance: none;
       -moz-appearance: none;
            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 0.75rem center;
    background-size: 1rem;
    padding-right: 3rem;
  }
  textarea.form-control {
    min-height: 6rem;
    resize: vertical;
  }
  .form-text {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--fv-muted);
  }
  .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.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: 0.5rem 0.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: 0.25rem;
    font-size: 0.875rem;
    color: var(--fv-success);
  }
  .invalid-feedback {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--fv-danger);
  }
}
@layer components {
  .navbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 0.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 rgba(255, 255, 255, 0.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: 0.5rem;
    margin-right: auto;
    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-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    color: var(--fv-body-color);
    background-color: var(--fv-glass-bg);
    border: 1px solid var(--fv-glass-border);
    border-radius: 0.625rem;
    cursor: pointer;
  }
  .navbar-toggle:focus-visible {
    outline: 0;
    box-shadow: var(--fv-focus-ring);
  }
  .navbar-toggle-icon {
    position: relative;
    display: block;
    width: 1.25rem;
    height: 2px;
    background-color: currentColor;
    border-radius: 2px;
    transition: background-color 0.2s ease;
  }
  .navbar-toggle-icon::before, .navbar-toggle-icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 1.25rem;
    height: 2px;
    background-color: currentColor;
    border-radius: 2px;
    transition: transform 0.2s ease;
  }
  .navbar-toggle-icon::before {
    top: -6px;
  }
  .navbar-toggle-icon::after {
    top: 6px;
  }
  .navbar.is-open .navbar-toggle-icon {
    background-color: transparent;
  }
  .navbar.is-open .navbar-toggle-icon::before {
    transform: translateY(6px) rotate(45deg);
  }
  .navbar.is-open .navbar-toggle-icon::after {
    transform: translateY(-6px) rotate(-45deg);
  }
  .navbar-nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0.25rem;
    margin: 0;
    padding-left: 0;
    list-style: none;
  }
  .navbar.is-open .navbar-nav {
    display: flex;
  }
  .nav-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    color: var(--fv-muted);
    border-radius: 0.625rem;
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.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);
  }
  .nav-link:focus-visible {
    outline: 0;
    color: var(--fv-body-color);
    box-shadow: var(--fv-focus-ring);
  }
  @media (min-width: 992px) {
    .navbar-toggle {
      display: none;
    }
    .navbar-nav {
      display: flex;
      flex-basis: auto;
      flex-direction: row;
      align-items: center;
      gap: 0.25rem;
    }
  }
}
@layer components {
  .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: 0.85em;
    height: 0.85em;
  }
  .icon-lg {
    width: 1.5em;
    height: 1.5em;
  }
  .icon-xl {
    width: 2em;
    height: 2em;
  }
}
@layer components {
  .table {
    width: 100%;
    border-collapse: collapse;
    color: var(--fv-body-color);
  }
  .table th,
  .table td {
    padding: 0.75rem 1rem;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid var(--fv-border-color);
  }
  .table thead th {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--fv-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .table tbody tr {
    transition: background-color 0.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;
  }
}
@layer components {
  .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;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
  .avatar img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .avatar-sm {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.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: #ffffff;
    background-color: #6d4af5;
    border-color: transparent;
  }
  .avatar-secondary {
    color: #0b0f1d;
    background-color: #7c8aa5;
    border-color: transparent;
  }
  .avatar-success {
    color: #0b0f1d;
    background-color: #34d399;
    border-color: transparent;
  }
  .avatar-danger {
    color: #0b0f1d;
    background-color: #fb5b78;
    border-color: transparent;
  }
  .avatar-warning {
    color: #0b0f1d;
    background-color: #fbbf24;
    border-color: transparent;
  }
  .avatar-info {
    color: #0b0f1d;
    background-color: #22d3ee;
    border-color: transparent;
  }
  .avatar-accent {
    color: #0b0f1d;
    background-color: #e879f9;
    border-color: transparent;
  }
  .avatar-light {
    color: #0b0f1d;
    background-color: #e7ecf5;
    border-color: transparent;
  }
  .avatar-dark {
    color: #ffffff;
    background-color: #0b0f1d;
    border-color: transparent;
  }
  .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;
  }
}
@layer components {
  .chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.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: transparent;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0.7;
  }
  .chip-close:hover {
    opacity: 1;
    background-color: var(--fv-glass-bg-strong);
  }
  .chip-close:focus-visible {
    outline: 0;
    opacity: 1;
    box-shadow: var(--fv-focus-ring);
  }
  .chip-primary {
    color: rgb(174.7, 155.45, 249.5);
    background-color: rgba(109, 74, 245, 0.16);
    border-color: rgba(109, 74, 245, 0.35);
  }
  .chip-secondary {
    color: rgb(182.95, 190.65, 205.5);
    background-color: rgba(124, 138, 165, 0.16);
    border-color: rgba(124, 138, 165, 0.35);
  }
  .chip-success {
    color: rgb(143.35, 230.8, 198.9);
    background-color: rgba(52, 211, 153, 0.16);
    border-color: rgba(52, 211, 153, 0.35);
  }
  .chip-danger {
    color: rgb(252.8, 164.8, 180.75);
    background-color: rgba(251, 91, 120, 0.16);
    border-color: rgba(251, 91, 120, 0.35);
  }
  .chip-warning {
    color: rgb(252.8, 219.8, 134.55);
    background-color: rgba(251, 191, 36, 0.16);
    border-color: rgba(251, 191, 36, 0.35);
  }
  .chip-info {
    color: rgb(133.45, 230.8, 245.65);
    background-color: rgba(34, 211, 238, 0.16);
    border-color: rgba(34, 211, 238, 0.35);
  }
  .chip-accent {
    color: rgb(242.35, 181.3, 251.7);
    background-color: rgba(232, 121, 249, 0.16);
    border-color: rgba(232, 121, 249, 0.35);
  }
  .chip-light {
    color: rgb(241.8, 244.55, 249.5);
    background-color: rgba(231, 236, 245, 0.16);
    border-color: rgba(231, 236, 245, 0.35);
  }
  .chip-dark {
    color: rgb(120.8, 123, 130.7);
    background-color: rgba(11, 15, 29, 0.16);
    border-color: rgba(11, 15, 29, 0.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);
  }
}
@layer components {
  .progress {
    position: relative;
    display: flex;
    height: 0.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 0.4s ease;
  }
  .progress-lg {
    height: 1rem;
  }
  .progress-sm {
    height: 0.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;
    }
  }
}
@layer components {
  .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 0.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: 0.3rem;
    vertical-align: middle;
  }
  .spinner-dots > span {
    width: 0.5rem;
    height: 0.5rem;
    background-color: var(--fv-primary);
    border-radius: 50%;
    animation: fv-bounce 0.6s ease-in-out infinite;
  }
  .spinner-dots > span:nth-child(2) {
    animation-delay: 0.12s;
  }
  .spinner-dots > span:nth-child(3) {
    animation-delay: 0.24s;
  }
  @keyframes fv-spin {
    to {
      transform: rotate(360deg);
    }
  }
  @keyframes fv-bounce {
    0%, 100% {
      transform: translateY(0);
      opacity: 0.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;
    }
  }
}
@layer components {
  .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: 0.625rem;
    animation: fv-skeleton 1.4s ease-in-out infinite;
  }
  .skeleton-text {
    height: 0.8em;
    margin-bottom: 0.5rem;
    border-radius: 0.375rem;
  }
  .skeleton-title {
    width: 50%;
    height: 1.4em;
    margin-bottom: 0.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;
    }
  }
}
@layer components {
  .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    list-style: none;
  }
  .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--fv-muted);
  }
  .breadcrumb-item a {
    color: var(--fv-muted);
    text-decoration: none;
    transition: color 0.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: 0.5;
  }
}
@layer components {
  .pagination {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.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 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: 0.625rem;
    transition: background-color 0.2s ease, border-color 0.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: #ffffff;
    background-image: var(--fv-gradient-primary);
    border-color: transparent;
  }
  .page-item.disabled .page-link {
    opacity: 0.45;
    pointer-events: none;
  }
}
@layer components {
  [data-tooltip] {
    position: relative;
  }
  [data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.5rem);
    z-index: 1070;
    padding: 0.25rem 0.75rem;
    font-size: 0.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: 0.625rem;
    box-shadow: var(--fv-shadow-lg);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(0.25rem);
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
  [data-tooltip]:hover::after,
  [data-tooltip]:focus-visible::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
@layer components {
  .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 0.2s ease, border-color 0.2s ease;
  }
  .switch-thumb {
    position: absolute;
    top: 50%;
    left: 0.22rem;
    width: 1.04rem;
    height: 1.04rem;
    background-color: #ffffff;
    border-radius: 50%;
    box-shadow: var(--fv-shadow-sm);
    transform: translateY(-50%);
    transition: transform 0.2s ease;
  }
  .switch input:checked ~ .switch-track {
    background-image: var(--fv-gradient-primary);
    border-color: transparent;
  }
  .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: 0.5;
  }
}
@layer components {
  .tabs {
    display: inline-flex;
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    gap: 0.25rem;
    padding: 0.25rem;
    margin-bottom: 1rem;
    background-color: var(--fv-glass-bg);
    border: 1px solid var(--fv-glass-border);
    border-radius: 0.875rem;
  }
  .tab {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--fv-muted);
    background: transparent;
    border: 0;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.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 0.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;
    }
  }
}
@layer components {
  .accordion-item {
    margin-bottom: 0.5rem;
    border-radius: 0.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 rgba(255, 255, 255, 0.1);
  }
  .accordion-item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
    transition: background-color 0.2s ease;
  }
  .accordion-item > summary::-webkit-details-marker {
    display: none;
  }
  .accordion-item > summary::after {
    content: "";
    flex-shrink: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid var(--fv-muted);
    border-bottom: 2px solid var(--fv-muted);
    transform: rotate(45deg);
    transition: transform 0.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);
  }
}
@layer components {
  .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% + 0.4rem);
    left: 0;
    z-index: 1000;
    min-width: 11rem;
    max-width: calc(100vw - 1rem);
    padding: 0.25rem;
    border-radius: 0.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 rgba(255, 255, 255, 0.1);
    animation: fv-dropdown-in 0.15s ease;
  }
  .dropdown-menu-end {
    left: auto;
    right: 0;
  }
  .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    color: var(--fv-body-color);
    text-align: left;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: background-color 0.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: 0.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;
    }
  }
}
@layer components {
  .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 rgba(255, 255, 255, 0.1);
    box-shadow: var(--fv-shadow-xl);
  }
  .modal::backdrop {
    background-color: rgba(6, 9, 18, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
  .modal[open] {
    animation: fv-modal-in 0.2s ease;
  }
  .modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.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: 0.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: transparent;
    border: 0;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.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;
    }
  }
}
@layer components {
  .toast-container {
    position: fixed;
    top: 1.5rem;
    right: 1.5rem;
    z-index: 1070;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: min(22rem, 100vw - 2rem);
  }
  .toast {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-radius: 0.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 rgba(255, 255, 255, 0.1);
    box-shadow: var(--fv-shadow-xl);
    animation: fv-toast-in 0.3s ease;
  }
  .toast-body {
    flex: 1 1 auto;
    min-width: 0;
  }
  .toast-title {
    font-weight: 600;
  }
  .toast-message {
    font-size: 0.875rem;
    color: var(--fv-muted);
  }
  .toast-close {
    flex-shrink: 0;
    padding: 0;
    font-size: 1.2rem;
    line-height: 1;
    color: var(--fv-muted);
    background: transparent;
    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 0.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;
    }
  }
}
@layer components {
  .stepper {
    display: flex;
    gap: 0.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: 0.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: 0.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: #ffffff;
    background-image: var(--fv-gradient-primary);
    border-color: transparent;
    box-shadow: var(--fv-glow-primary);
  }
  .step.is-done .step-dot {
    color: #ffffff;
    background-color: var(--fv-success);
    border-color: transparent;
  }
  .step.is-active .step-label,
  .step.is-done .step-label {
    color: var(--fv-body-color);
  }
  @media (max-width: 575.98px) {
    .stepper {
      flex-direction: column;
      gap: 0.75rem;
    }
    .step {
      flex: 0 0 auto;
      flex-direction: row;
      justify-content: flex-start;
      gap: 0.75rem;
      text-align: left;
    }
    .step:not(:last-child)::after {
      top: 2rem;
      left: calc(1rem - 1px);
      width: 2px;
      height: calc(100% - 2rem + 0.75rem);
    }
  }
}
@layer components {
  .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: 0.9rem;
    height: 0.9rem;
    margin-top: 0.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: 0.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: 0.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;
  }
}
@layer components {
  .segmented {
    display: inline-flex;
    gap: 0.2rem;
    padding: 0.25rem;
    background-color: var(--fv-glass-bg);
    border: 1px solid var(--fv-glass-border);
    border-radius: 0.875rem;
  }
  .segmented input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }
  .segmented label {
    padding: 0.25rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--fv-muted);
    border-radius: 0.625rem;
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.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);
  }
}
@layer components {
  .rating {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    color: var(--fv-warning);
  }
  .rating .icon {
    width: 1.1em;
    height: 1.1em;
    fill: currentColor;
  }
  .rating-empty {
    color: var(--fv-glass-border);
  }
}
@layer components {
  .stat-value {
    font-size: clamp(1.5rem, 5vw, 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: 0.25rem;
    font-size: 0.875rem;
    font-weight: 600;
  }
  .stat-trend-up {
    color: var(--fv-success);
  }
  .stat-trend-down {
    color: var(--fv-danger);
  }
}
@layer components {
  .empty-state {
    padding: 3rem 1rem;
    text-align: center;
  }
  .empty-state-icon {
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 0.75rem;
    color: var(--fv-muted);
    opacity: 0.7;
  }
  .empty-state-title {
    margin-bottom: 0.5rem;
    font-size: 1.25rem;
    font-weight: 600;
  }
  .empty-state-text {
    max-width: 28rem;
    margin: 0 auto 1rem;
    color: var(--fv-muted);
  }
}
@layer components {
  .list-group {
    display: flex;
    flex-direction: column;
    border-radius: 0.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 rgba(255, 255, 255, 0.1);
  }
  .list-group-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    color: var(--fv-body-color);
    background-color: transparent;
    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 0.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);
  }
}
@layer components {
  .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: 0.625rem;
  }
  .callout-title {
    margin-bottom: 0.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;
  }
}
@layer components {
  .form-range {
    width: 100%;
    height: 1.5rem;
    padding: 0;
    background: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
         appearance: none;
    cursor: pointer;
  }
  .form-range:focus {
    outline: 0;
  }
  .form-range::-webkit-slider-runnable-track {
    height: 0.4rem;
    background-color: var(--fv-glass-bg-strong);
    border: 1px solid var(--fv-glass-border);
    border-radius: 50rem;
  }
  .form-range::-moz-range-track {
    height: 0.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);
  }
}
@layer components {
  .chat {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .message {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
  }
  .message-body {
    min-width: 0;
    max-width: min(42rem, 80%);
  }
  .message-bubble {
    padding: 0.75rem 1rem;
    border-radius: 0.875rem;
    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);
    box-shadow: var(--fv-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.1);
    overflow-wrap: anywhere;
    white-space: pre-wrap;
  }
  .message-bubble > :last-child {
    margin-bottom: 0;
  }
  .message-meta {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--fv-muted);
  }
  .message-out {
    flex-direction: row-reverse;
  }
  .message-out .message-bubble {
    color: #ffffff;
    background-image: var(--fv-gradient-primary);
    border-color: transparent;
  }
  .message-out .message-meta {
    text-align: right;
  }
  .typing {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0;
  }
  .typing span {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background-color: var(--fv-muted);
    animation: fv-typing 1.2s infinite ease-in-out;
  }
  .typing span:nth-child(2) {
    animation-delay: 0.15s;
  }
  .typing span:nth-child(3) {
    animation-delay: 0.3s;
  }
  @keyframes fv-typing {
    0%, 60%, 100% {
      opacity: 0.3;
      transform: translateY(0);
    }
    30% {
      opacity: 1;
      transform: translateY(-0.2rem);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .typing span {
      animation-duration: 0.01ms;
      animation-iteration-count: 1;
      opacity: 0.7;
    }
  }
}
@layer components {
  .prompt {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 0.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 rgba(255, 255, 255, 0.1);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
  }
  .prompt:focus-within {
    border-color: var(--fv-primary);
    box-shadow: var(--fv-focus-ring);
  }
  .prompt-field {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 2.75rem;
    max-height: 12rem;
    padding: 0.5rem 0.75rem;
    color: var(--fv-body-color);
    font: inherit;
    line-height: 1.6;
    background: transparent;
    border: 0;
    resize: none;
    field-sizing: content;
    overflow-y: auto;
  }
  .prompt-field::-moz-placeholder {
    color: var(--fv-muted);
    opacity: 0.8;
  }
  .prompt-field::placeholder {
    color: var(--fv-muted);
    opacity: 0.8;
  }
  .prompt-field:focus {
    outline: 0;
  }
  .prompt-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.5rem;
  }
  .prompt-meta {
    font-size: 0.875rem;
    color: var(--fv-muted);
    white-space: nowrap;
  }
}
@layer components {
  .status {
    --fv-status: var(--fv-muted);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--fv-body-color);
  }
  .status::before {
    content: "";
    flex: 0 0 auto;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: var(--fv-status);
  }
  .status-online {
    --fv-status: var(--fv-success);
  }
  .status-busy {
    --fv-status: var(--fv-warning);
  }
  .status-idle {
    --fv-status: var(--fv-muted);
  }
  .status-error {
    --fv-status: var(--fv-danger);
  }
  .status-online::before,
  .status-busy::before {
    animation: fv-pulse 1.8s infinite ease-out;
  }
  @keyframes fv-pulse {
    0% {
      box-shadow: 0 0 0 0 color-mix(in srgb, var(--fv-status) 55%, transparent);
    }
    70% {
      box-shadow: 0 0 0 0.5rem color-mix(in srgb, var(--fv-status) 0%, transparent);
    }
    100% {
      box-shadow: 0 0 0 0 color-mix(in srgb, var(--fv-status) 0%, transparent);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .status::before {
      animation: none;
    }
  }
}
@layer components {
  .snippet-wrap {
    position: relative;
  }
  .copy-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--fv-muted);
    background-color: var(--fv-glass-bg-strong);
    border: 1px solid var(--fv-glass-border);
    border-radius: 0.625rem;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .copy-btn:hover {
    color: var(--fv-body-color);
  }
  .copy-btn:focus-visible {
    outline: 0;
    opacity: 1;
    box-shadow: var(--fv-focus-ring);
  }
  .copy-btn.is-copied {
    color: var(--fv-success);
    border-color: var(--fv-success);
  }
  .snippet-wrap:hover .copy-btn,
  .snippet-wrap:focus-within .copy-btn {
    opacity: 1;
  }
}
@layer utilities {
  .mt-0 {
    margin-top: 0;
  }
  .me-0 {
    margin-right: 0;
  }
  .mb-0 {
    margin-bottom: 0;
  }
  .ms-0 {
    margin-left: 0;
  }
  .mx-0 {
    margin-left: 0;
    margin-right: 0;
  }
  .my-0 {
    margin-top: 0;
    margin-bottom: 0;
  }
  .m-0 {
    margin: 0;
  }
  .mt-1 {
    margin-top: 0.25rem;
  }
  .me-1 {
    margin-right: 0.25rem;
  }
  .mb-1 {
    margin-bottom: 0.25rem;
  }
  .ms-1 {
    margin-left: 0.25rem;
  }
  .mx-1 {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
  }
  .my-1 {
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
  }
  .m-1 {
    margin: 0.25rem;
  }
  .mt-2 {
    margin-top: 0.5rem;
  }
  .me-2 {
    margin-right: 0.5rem;
  }
  .mb-2 {
    margin-bottom: 0.5rem;
  }
  .ms-2 {
    margin-left: 0.5rem;
  }
  .mx-2 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
  .my-2 {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
  .m-2 {
    margin: 0.5rem;
  }
  .mt-3 {
    margin-top: 0.75rem;
  }
  .me-3 {
    margin-right: 0.75rem;
  }
  .mb-3 {
    margin-bottom: 0.75rem;
  }
  .ms-3 {
    margin-left: 0.75rem;
  }
  .mx-3 {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
  }
  .my-3 {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
  }
  .m-3 {
    margin: 0.75rem;
  }
  .mt-4 {
    margin-top: 1rem;
  }
  .me-4 {
    margin-right: 1rem;
  }
  .mb-4 {
    margin-bottom: 1rem;
  }
  .ms-4 {
    margin-left: 1rem;
  }
  .mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
  }
  .my-4 {
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
  .m-4 {
    margin: 1rem;
  }
  .mt-5 {
    margin-top: 1.5rem;
  }
  .me-5 {
    margin-right: 1.5rem;
  }
  .mb-5 {
    margin-bottom: 1.5rem;
  }
  .ms-5 {
    margin-left: 1.5rem;
  }
  .mx-5 {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
  }
  .my-5 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .m-5 {
    margin: 1.5rem;
  }
  .mt-6 {
    margin-top: 2rem;
  }
  .me-6 {
    margin-right: 2rem;
  }
  .mb-6 {
    margin-bottom: 2rem;
  }
  .ms-6 {
    margin-left: 2rem;
  }
  .mx-6 {
    margin-left: 2rem;
    margin-right: 2rem;
  }
  .my-6 {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
  .m-6 {
    margin: 2rem;
  }
  .mt-7 {
    margin-top: 3rem;
  }
  .me-7 {
    margin-right: 3rem;
  }
  .mb-7 {
    margin-bottom: 3rem;
  }
  .ms-7 {
    margin-left: 3rem;
  }
  .mx-7 {
    margin-left: 3rem;
    margin-right: 3rem;
  }
  .my-7 {
    margin-top: 3rem;
    margin-bottom: 3rem;
  }
  .m-7 {
    margin: 3rem;
  }
  .mt-8 {
    margin-top: 4rem;
  }
  .me-8 {
    margin-right: 4rem;
  }
  .mb-8 {
    margin-bottom: 4rem;
  }
  .ms-8 {
    margin-left: 4rem;
  }
  .mx-8 {
    margin-left: 4rem;
    margin-right: 4rem;
  }
  .my-8 {
    margin-top: 4rem;
    margin-bottom: 4rem;
  }
  .m-8 {
    margin: 4rem;
  }
  .pt-0 {
    padding-top: 0;
  }
  .pe-0 {
    padding-right: 0;
  }
  .pb-0 {
    padding-bottom: 0;
  }
  .ps-0 {
    padding-left: 0;
  }
  .px-0 {
    padding-left: 0;
    padding-right: 0;
  }
  .py-0 {
    padding-top: 0;
    padding-bottom: 0;
  }
  .p-0 {
    padding: 0;
  }
  .pt-1 {
    padding-top: 0.25rem;
  }
  .pe-1 {
    padding-right: 0.25rem;
  }
  .pb-1 {
    padding-bottom: 0.25rem;
  }
  .ps-1 {
    padding-left: 0.25rem;
  }
  .px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }
  .py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
  .p-1 {
    padding: 0.25rem;
  }
  .pt-2 {
    padding-top: 0.5rem;
  }
  .pe-2 {
    padding-right: 0.5rem;
  }
  .pb-2 {
    padding-bottom: 0.5rem;
  }
  .ps-2 {
    padding-left: 0.5rem;
  }
  .px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  .py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  .p-2 {
    padding: 0.5rem;
  }
  .pt-3 {
    padding-top: 0.75rem;
  }
  .pe-3 {
    padding-right: 0.75rem;
  }
  .pb-3 {
    padding-bottom: 0.75rem;
  }
  .ps-3 {
    padding-left: 0.75rem;
  }
  .px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .p-3 {
    padding: 0.75rem;
  }
  .pt-4 {
    padding-top: 1rem;
  }
  .pe-4 {
    padding-right: 1rem;
  }
  .pb-4 {
    padding-bottom: 1rem;
  }
  .ps-4 {
    padding-left: 1rem;
  }
  .px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .p-4 {
    padding: 1rem;
  }
  .pt-5 {
    padding-top: 1.5rem;
  }
  .pe-5 {
    padding-right: 1.5rem;
  }
  .pb-5 {
    padding-bottom: 1.5rem;
  }
  .ps-5 {
    padding-left: 1.5rem;
  }
  .px-5 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .py-5 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
  .p-5 {
    padding: 1.5rem;
  }
  .pt-6 {
    padding-top: 2rem;
  }
  .pe-6 {
    padding-right: 2rem;
  }
  .pb-6 {
    padding-bottom: 2rem;
  }
  .ps-6 {
    padding-left: 2rem;
  }
  .px-6 {
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .py-6 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .p-6 {
    padding: 2rem;
  }
  .pt-7 {
    padding-top: 3rem;
  }
  .pe-7 {
    padding-right: 3rem;
  }
  .pb-7 {
    padding-bottom: 3rem;
  }
  .ps-7 {
    padding-left: 3rem;
  }
  .px-7 {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  .py-7 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .p-7 {
    padding: 3rem;
  }
  .pt-8 {
    padding-top: 4rem;
  }
  .pe-8 {
    padding-right: 4rem;
  }
  .pb-8 {
    padding-bottom: 4rem;
  }
  .ps-8 {
    padding-left: 4rem;
  }
  .px-8 {
    padding-left: 4rem;
    padding-right: 4rem;
  }
  .py-8 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .p-8 {
    padding: 4rem;
  }
  .m-n1 {
    margin: -0.25rem;
  }
  .mt-n1 {
    margin-top: -0.25rem;
  }
  .mb-n1 {
    margin-bottom: -0.25rem;
  }
  .ms-n1 {
    margin-left: -0.25rem;
  }
  .me-n1 {
    margin-right: -0.25rem;
  }
  .mx-n1 {
    margin-left: -0.25rem;
    margin-right: -0.25rem;
  }
  .m-n2 {
    margin: -0.5rem;
  }
  .mt-n2 {
    margin-top: -0.5rem;
  }
  .mb-n2 {
    margin-bottom: -0.5rem;
  }
  .ms-n2 {
    margin-left: -0.5rem;
  }
  .me-n2 {
    margin-right: -0.5rem;
  }
  .mx-n2 {
    margin-left: -0.5rem;
    margin-right: -0.5rem;
  }
  .m-n3 {
    margin: -0.75rem;
  }
  .mt-n3 {
    margin-top: -0.75rem;
  }
  .mb-n3 {
    margin-bottom: -0.75rem;
  }
  .ms-n3 {
    margin-left: -0.75rem;
  }
  .me-n3 {
    margin-right: -0.75rem;
  }
  .mx-n3 {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
  }
  .m-n4 {
    margin: -1rem;
  }
  .mt-n4 {
    margin-top: -1rem;
  }
  .mb-n4 {
    margin-bottom: -1rem;
  }
  .ms-n4 {
    margin-left: -1rem;
  }
  .me-n4 {
    margin-right: -1rem;
  }
  .mx-n4 {
    margin-left: -1rem;
    margin-right: -1rem;
  }
  .m-n5 {
    margin: -1.5rem;
  }
  .mt-n5 {
    margin-top: -1.5rem;
  }
  .mb-n5 {
    margin-bottom: -1.5rem;
  }
  .ms-n5 {
    margin-left: -1.5rem;
  }
  .me-n5 {
    margin-right: -1.5rem;
  }
  .mx-n5 {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
  .m-n6 {
    margin: -2rem;
  }
  .mt-n6 {
    margin-top: -2rem;
  }
  .mb-n6 {
    margin-bottom: -2rem;
  }
  .ms-n6 {
    margin-left: -2rem;
  }
  .me-n6 {
    margin-right: -2rem;
  }
  .mx-n6 {
    margin-left: -2rem;
    margin-right: -2rem;
  }
  .m-n7 {
    margin: -3rem;
  }
  .mt-n7 {
    margin-top: -3rem;
  }
  .mb-n7 {
    margin-bottom: -3rem;
  }
  .ms-n7 {
    margin-left: -3rem;
  }
  .me-n7 {
    margin-right: -3rem;
  }
  .mx-n7 {
    margin-left: -3rem;
    margin-right: -3rem;
  }
  .m-n8 {
    margin: -4rem;
  }
  .mt-n8 {
    margin-top: -4rem;
  }
  .mb-n8 {
    margin-bottom: -4rem;
  }
  .ms-n8 {
    margin-left: -4rem;
  }
  .me-n8 {
    margin-right: -4rem;
  }
  .mx-n8 {
    margin-left: -4rem;
    margin-right: -4rem;
  }
  .m-auto {
    margin: auto;
  }
  .mt-auto {
    margin-top: auto;
  }
  .mb-auto {
    margin-bottom: auto;
  }
  .ms-auto {
    margin-left: auto;
  }
  .me-auto {
    margin-right: auto;
  }
  .mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  @media (min-width: 576px) {
    .mt-sm-0 {
      margin-top: 0;
    }
    .me-sm-0 {
      margin-right: 0;
    }
    .mb-sm-0 {
      margin-bottom: 0;
    }
    .ms-sm-0 {
      margin-left: 0;
    }
    .mx-sm-0 {
      margin-left: 0;
      margin-right: 0;
    }
    .my-sm-0 {
      margin-top: 0;
      margin-bottom: 0;
    }
    .m-sm-0 {
      margin: 0;
    }
    .mt-sm-1 {
      margin-top: 0.25rem;
    }
    .me-sm-1 {
      margin-right: 0.25rem;
    }
    .mb-sm-1 {
      margin-bottom: 0.25rem;
    }
    .ms-sm-1 {
      margin-left: 0.25rem;
    }
    .mx-sm-1 {
      margin-left: 0.25rem;
      margin-right: 0.25rem;
    }
    .my-sm-1 {
      margin-top: 0.25rem;
      margin-bottom: 0.25rem;
    }
    .m-sm-1 {
      margin: 0.25rem;
    }
    .mt-sm-2 {
      margin-top: 0.5rem;
    }
    .me-sm-2 {
      margin-right: 0.5rem;
    }
    .mb-sm-2 {
      margin-bottom: 0.5rem;
    }
    .ms-sm-2 {
      margin-left: 0.5rem;
    }
    .mx-sm-2 {
      margin-left: 0.5rem;
      margin-right: 0.5rem;
    }
    .my-sm-2 {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .m-sm-2 {
      margin: 0.5rem;
    }
    .mt-sm-3 {
      margin-top: 0.75rem;
    }
    .me-sm-3 {
      margin-right: 0.75rem;
    }
    .mb-sm-3 {
      margin-bottom: 0.75rem;
    }
    .ms-sm-3 {
      margin-left: 0.75rem;
    }
    .mx-sm-3 {
      margin-left: 0.75rem;
      margin-right: 0.75rem;
    }
    .my-sm-3 {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }
    .m-sm-3 {
      margin: 0.75rem;
    }
    .mt-sm-4 {
      margin-top: 1rem;
    }
    .me-sm-4 {
      margin-right: 1rem;
    }
    .mb-sm-4 {
      margin-bottom: 1rem;
    }
    .ms-sm-4 {
      margin-left: 1rem;
    }
    .mx-sm-4 {
      margin-left: 1rem;
      margin-right: 1rem;
    }
    .my-sm-4 {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }
    .m-sm-4 {
      margin: 1rem;
    }
    .mt-sm-5 {
      margin-top: 1.5rem;
    }
    .me-sm-5 {
      margin-right: 1.5rem;
    }
    .mb-sm-5 {
      margin-bottom: 1.5rem;
    }
    .ms-sm-5 {
      margin-left: 1.5rem;
    }
    .mx-sm-5 {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
    }
    .my-sm-5 {
      margin-top: 1.5rem;
      margin-bottom: 1.5rem;
    }
    .m-sm-5 {
      margin: 1.5rem;
    }
    .mt-sm-6 {
      margin-top: 2rem;
    }
    .me-sm-6 {
      margin-right: 2rem;
    }
    .mb-sm-6 {
      margin-bottom: 2rem;
    }
    .ms-sm-6 {
      margin-left: 2rem;
    }
    .mx-sm-6 {
      margin-left: 2rem;
      margin-right: 2rem;
    }
    .my-sm-6 {
      margin-top: 2rem;
      margin-bottom: 2rem;
    }
    .m-sm-6 {
      margin: 2rem;
    }
    .mt-sm-7 {
      margin-top: 3rem;
    }
    .me-sm-7 {
      margin-right: 3rem;
    }
    .mb-sm-7 {
      margin-bottom: 3rem;
    }
    .ms-sm-7 {
      margin-left: 3rem;
    }
    .mx-sm-7 {
      margin-left: 3rem;
      margin-right: 3rem;
    }
    .my-sm-7 {
      margin-top: 3rem;
      margin-bottom: 3rem;
    }
    .m-sm-7 {
      margin: 3rem;
    }
    .mt-sm-8 {
      margin-top: 4rem;
    }
    .me-sm-8 {
      margin-right: 4rem;
    }
    .mb-sm-8 {
      margin-bottom: 4rem;
    }
    .ms-sm-8 {
      margin-left: 4rem;
    }
    .mx-sm-8 {
      margin-left: 4rem;
      margin-right: 4rem;
    }
    .my-sm-8 {
      margin-top: 4rem;
      margin-bottom: 4rem;
    }
    .m-sm-8 {
      margin: 4rem;
    }
    .pt-sm-0 {
      padding-top: 0;
    }
    .pe-sm-0 {
      padding-right: 0;
    }
    .pb-sm-0 {
      padding-bottom: 0;
    }
    .ps-sm-0 {
      padding-left: 0;
    }
    .px-sm-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .py-sm-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .p-sm-0 {
      padding: 0;
    }
    .pt-sm-1 {
      padding-top: 0.25rem;
    }
    .pe-sm-1 {
      padding-right: 0.25rem;
    }
    .pb-sm-1 {
      padding-bottom: 0.25rem;
    }
    .ps-sm-1 {
      padding-left: 0.25rem;
    }
    .px-sm-1 {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
    .py-sm-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }
    .p-sm-1 {
      padding: 0.25rem;
    }
    .pt-sm-2 {
      padding-top: 0.5rem;
    }
    .pe-sm-2 {
      padding-right: 0.5rem;
    }
    .pb-sm-2 {
      padding-bottom: 0.5rem;
    }
    .ps-sm-2 {
      padding-left: 0.5rem;
    }
    .px-sm-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .py-sm-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .p-sm-2 {
      padding: 0.5rem;
    }
    .pt-sm-3 {
      padding-top: 0.75rem;
    }
    .pe-sm-3 {
      padding-right: 0.75rem;
    }
    .pb-sm-3 {
      padding-bottom: 0.75rem;
    }
    .ps-sm-3 {
      padding-left: 0.75rem;
    }
    .px-sm-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }
    .py-sm-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    .p-sm-3 {
      padding: 0.75rem;
    }
    .pt-sm-4 {
      padding-top: 1rem;
    }
    .pe-sm-4 {
      padding-right: 1rem;
    }
    .pb-sm-4 {
      padding-bottom: 1rem;
    }
    .ps-sm-4 {
      padding-left: 1rem;
    }
    .px-sm-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    .py-sm-4 {
      padding-top: 1rem;
      padding-bottom: 1rem;
    }
    .p-sm-4 {
      padding: 1rem;
    }
    .pt-sm-5 {
      padding-top: 1.5rem;
    }
    .pe-sm-5 {
      padding-right: 1.5rem;
    }
    .pb-sm-5 {
      padding-bottom: 1.5rem;
    }
    .ps-sm-5 {
      padding-left: 1.5rem;
    }
    .px-sm-5 {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
    .py-sm-5 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }
    .p-sm-5 {
      padding: 1.5rem;
    }
    .pt-sm-6 {
      padding-top: 2rem;
    }
    .pe-sm-6 {
      padding-right: 2rem;
    }
    .pb-sm-6 {
      padding-bottom: 2rem;
    }
    .ps-sm-6 {
      padding-left: 2rem;
    }
    .px-sm-6 {
      padding-left: 2rem;
      padding-right: 2rem;
    }
    .py-sm-6 {
      padding-top: 2rem;
      padding-bottom: 2rem;
    }
    .p-sm-6 {
      padding: 2rem;
    }
    .pt-sm-7 {
      padding-top: 3rem;
    }
    .pe-sm-7 {
      padding-right: 3rem;
    }
    .pb-sm-7 {
      padding-bottom: 3rem;
    }
    .ps-sm-7 {
      padding-left: 3rem;
    }
    .px-sm-7 {
      padding-left: 3rem;
      padding-right: 3rem;
    }
    .py-sm-7 {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .p-sm-7 {
      padding: 3rem;
    }
    .pt-sm-8 {
      padding-top: 4rem;
    }
    .pe-sm-8 {
      padding-right: 4rem;
    }
    .pb-sm-8 {
      padding-bottom: 4rem;
    }
    .ps-sm-8 {
      padding-left: 4rem;
    }
    .px-sm-8 {
      padding-left: 4rem;
      padding-right: 4rem;
    }
    .py-sm-8 {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    .p-sm-8 {
      padding: 4rem;
    }
    .m-sm-n1 {
      margin: -0.25rem;
    }
    .mt-sm-n1 {
      margin-top: -0.25rem;
    }
    .mb-sm-n1 {
      margin-bottom: -0.25rem;
    }
    .ms-sm-n1 {
      margin-left: -0.25rem;
    }
    .me-sm-n1 {
      margin-right: -0.25rem;
    }
    .mx-sm-n1 {
      margin-left: -0.25rem;
      margin-right: -0.25rem;
    }
    .m-sm-n2 {
      margin: -0.5rem;
    }
    .mt-sm-n2 {
      margin-top: -0.5rem;
    }
    .mb-sm-n2 {
      margin-bottom: -0.5rem;
    }
    .ms-sm-n2 {
      margin-left: -0.5rem;
    }
    .me-sm-n2 {
      margin-right: -0.5rem;
    }
    .mx-sm-n2 {
      margin-left: -0.5rem;
      margin-right: -0.5rem;
    }
    .m-sm-n3 {
      margin: -0.75rem;
    }
    .mt-sm-n3 {
      margin-top: -0.75rem;
    }
    .mb-sm-n3 {
      margin-bottom: -0.75rem;
    }
    .ms-sm-n3 {
      margin-left: -0.75rem;
    }
    .me-sm-n3 {
      margin-right: -0.75rem;
    }
    .mx-sm-n3 {
      margin-left: -0.75rem;
      margin-right: -0.75rem;
    }
    .m-sm-n4 {
      margin: -1rem;
    }
    .mt-sm-n4 {
      margin-top: -1rem;
    }
    .mb-sm-n4 {
      margin-bottom: -1rem;
    }
    .ms-sm-n4 {
      margin-left: -1rem;
    }
    .me-sm-n4 {
      margin-right: -1rem;
    }
    .mx-sm-n4 {
      margin-left: -1rem;
      margin-right: -1rem;
    }
    .m-sm-n5 {
      margin: -1.5rem;
    }
    .mt-sm-n5 {
      margin-top: -1.5rem;
    }
    .mb-sm-n5 {
      margin-bottom: -1.5rem;
    }
    .ms-sm-n5 {
      margin-left: -1.5rem;
    }
    .me-sm-n5 {
      margin-right: -1.5rem;
    }
    .mx-sm-n5 {
      margin-left: -1.5rem;
      margin-right: -1.5rem;
    }
    .m-sm-n6 {
      margin: -2rem;
    }
    .mt-sm-n6 {
      margin-top: -2rem;
    }
    .mb-sm-n6 {
      margin-bottom: -2rem;
    }
    .ms-sm-n6 {
      margin-left: -2rem;
    }
    .me-sm-n6 {
      margin-right: -2rem;
    }
    .mx-sm-n6 {
      margin-left: -2rem;
      margin-right: -2rem;
    }
    .m-sm-n7 {
      margin: -3rem;
    }
    .mt-sm-n7 {
      margin-top: -3rem;
    }
    .mb-sm-n7 {
      margin-bottom: -3rem;
    }
    .ms-sm-n7 {
      margin-left: -3rem;
    }
    .me-sm-n7 {
      margin-right: -3rem;
    }
    .mx-sm-n7 {
      margin-left: -3rem;
      margin-right: -3rem;
    }
    .m-sm-n8 {
      margin: -4rem;
    }
    .mt-sm-n8 {
      margin-top: -4rem;
    }
    .mb-sm-n8 {
      margin-bottom: -4rem;
    }
    .ms-sm-n8 {
      margin-left: -4rem;
    }
    .me-sm-n8 {
      margin-right: -4rem;
    }
    .mx-sm-n8 {
      margin-left: -4rem;
      margin-right: -4rem;
    }
    .m-sm-auto {
      margin: auto;
    }
    .mt-sm-auto {
      margin-top: auto;
    }
    .mb-sm-auto {
      margin-bottom: auto;
    }
    .ms-sm-auto {
      margin-left: auto;
    }
    .me-sm-auto {
      margin-right: auto;
    }
    .mx-sm-auto {
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media (min-width: 768px) {
    .mt-md-0 {
      margin-top: 0;
    }
    .me-md-0 {
      margin-right: 0;
    }
    .mb-md-0 {
      margin-bottom: 0;
    }
    .ms-md-0 {
      margin-left: 0;
    }
    .mx-md-0 {
      margin-left: 0;
      margin-right: 0;
    }
    .my-md-0 {
      margin-top: 0;
      margin-bottom: 0;
    }
    .m-md-0 {
      margin: 0;
    }
    .mt-md-1 {
      margin-top: 0.25rem;
    }
    .me-md-1 {
      margin-right: 0.25rem;
    }
    .mb-md-1 {
      margin-bottom: 0.25rem;
    }
    .ms-md-1 {
      margin-left: 0.25rem;
    }
    .mx-md-1 {
      margin-left: 0.25rem;
      margin-right: 0.25rem;
    }
    .my-md-1 {
      margin-top: 0.25rem;
      margin-bottom: 0.25rem;
    }
    .m-md-1 {
      margin: 0.25rem;
    }
    .mt-md-2 {
      margin-top: 0.5rem;
    }
    .me-md-2 {
      margin-right: 0.5rem;
    }
    .mb-md-2 {
      margin-bottom: 0.5rem;
    }
    .ms-md-2 {
      margin-left: 0.5rem;
    }
    .mx-md-2 {
      margin-left: 0.5rem;
      margin-right: 0.5rem;
    }
    .my-md-2 {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .m-md-2 {
      margin: 0.5rem;
    }
    .mt-md-3 {
      margin-top: 0.75rem;
    }
    .me-md-3 {
      margin-right: 0.75rem;
    }
    .mb-md-3 {
      margin-bottom: 0.75rem;
    }
    .ms-md-3 {
      margin-left: 0.75rem;
    }
    .mx-md-3 {
      margin-left: 0.75rem;
      margin-right: 0.75rem;
    }
    .my-md-3 {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }
    .m-md-3 {
      margin: 0.75rem;
    }
    .mt-md-4 {
      margin-top: 1rem;
    }
    .me-md-4 {
      margin-right: 1rem;
    }
    .mb-md-4 {
      margin-bottom: 1rem;
    }
    .ms-md-4 {
      margin-left: 1rem;
    }
    .mx-md-4 {
      margin-left: 1rem;
      margin-right: 1rem;
    }
    .my-md-4 {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }
    .m-md-4 {
      margin: 1rem;
    }
    .mt-md-5 {
      margin-top: 1.5rem;
    }
    .me-md-5 {
      margin-right: 1.5rem;
    }
    .mb-md-5 {
      margin-bottom: 1.5rem;
    }
    .ms-md-5 {
      margin-left: 1.5rem;
    }
    .mx-md-5 {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
    }
    .my-md-5 {
      margin-top: 1.5rem;
      margin-bottom: 1.5rem;
    }
    .m-md-5 {
      margin: 1.5rem;
    }
    .mt-md-6 {
      margin-top: 2rem;
    }
    .me-md-6 {
      margin-right: 2rem;
    }
    .mb-md-6 {
      margin-bottom: 2rem;
    }
    .ms-md-6 {
      margin-left: 2rem;
    }
    .mx-md-6 {
      margin-left: 2rem;
      margin-right: 2rem;
    }
    .my-md-6 {
      margin-top: 2rem;
      margin-bottom: 2rem;
    }
    .m-md-6 {
      margin: 2rem;
    }
    .mt-md-7 {
      margin-top: 3rem;
    }
    .me-md-7 {
      margin-right: 3rem;
    }
    .mb-md-7 {
      margin-bottom: 3rem;
    }
    .ms-md-7 {
      margin-left: 3rem;
    }
    .mx-md-7 {
      margin-left: 3rem;
      margin-right: 3rem;
    }
    .my-md-7 {
      margin-top: 3rem;
      margin-bottom: 3rem;
    }
    .m-md-7 {
      margin: 3rem;
    }
    .mt-md-8 {
      margin-top: 4rem;
    }
    .me-md-8 {
      margin-right: 4rem;
    }
    .mb-md-8 {
      margin-bottom: 4rem;
    }
    .ms-md-8 {
      margin-left: 4rem;
    }
    .mx-md-8 {
      margin-left: 4rem;
      margin-right: 4rem;
    }
    .my-md-8 {
      margin-top: 4rem;
      margin-bottom: 4rem;
    }
    .m-md-8 {
      margin: 4rem;
    }
    .pt-md-0 {
      padding-top: 0;
    }
    .pe-md-0 {
      padding-right: 0;
    }
    .pb-md-0 {
      padding-bottom: 0;
    }
    .ps-md-0 {
      padding-left: 0;
    }
    .px-md-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .py-md-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .p-md-0 {
      padding: 0;
    }
    .pt-md-1 {
      padding-top: 0.25rem;
    }
    .pe-md-1 {
      padding-right: 0.25rem;
    }
    .pb-md-1 {
      padding-bottom: 0.25rem;
    }
    .ps-md-1 {
      padding-left: 0.25rem;
    }
    .px-md-1 {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
    .py-md-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }
    .p-md-1 {
      padding: 0.25rem;
    }
    .pt-md-2 {
      padding-top: 0.5rem;
    }
    .pe-md-2 {
      padding-right: 0.5rem;
    }
    .pb-md-2 {
      padding-bottom: 0.5rem;
    }
    .ps-md-2 {
      padding-left: 0.5rem;
    }
    .px-md-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .py-md-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .p-md-2 {
      padding: 0.5rem;
    }
    .pt-md-3 {
      padding-top: 0.75rem;
    }
    .pe-md-3 {
      padding-right: 0.75rem;
    }
    .pb-md-3 {
      padding-bottom: 0.75rem;
    }
    .ps-md-3 {
      padding-left: 0.75rem;
    }
    .px-md-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }
    .py-md-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    .p-md-3 {
      padding: 0.75rem;
    }
    .pt-md-4 {
      padding-top: 1rem;
    }
    .pe-md-4 {
      padding-right: 1rem;
    }
    .pb-md-4 {
      padding-bottom: 1rem;
    }
    .ps-md-4 {
      padding-left: 1rem;
    }
    .px-md-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    .py-md-4 {
      padding-top: 1rem;
      padding-bottom: 1rem;
    }
    .p-md-4 {
      padding: 1rem;
    }
    .pt-md-5 {
      padding-top: 1.5rem;
    }
    .pe-md-5 {
      padding-right: 1.5rem;
    }
    .pb-md-5 {
      padding-bottom: 1.5rem;
    }
    .ps-md-5 {
      padding-left: 1.5rem;
    }
    .px-md-5 {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
    .py-md-5 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }
    .p-md-5 {
      padding: 1.5rem;
    }
    .pt-md-6 {
      padding-top: 2rem;
    }
    .pe-md-6 {
      padding-right: 2rem;
    }
    .pb-md-6 {
      padding-bottom: 2rem;
    }
    .ps-md-6 {
      padding-left: 2rem;
    }
    .px-md-6 {
      padding-left: 2rem;
      padding-right: 2rem;
    }
    .py-md-6 {
      padding-top: 2rem;
      padding-bottom: 2rem;
    }
    .p-md-6 {
      padding: 2rem;
    }
    .pt-md-7 {
      padding-top: 3rem;
    }
    .pe-md-7 {
      padding-right: 3rem;
    }
    .pb-md-7 {
      padding-bottom: 3rem;
    }
    .ps-md-7 {
      padding-left: 3rem;
    }
    .px-md-7 {
      padding-left: 3rem;
      padding-right: 3rem;
    }
    .py-md-7 {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .p-md-7 {
      padding: 3rem;
    }
    .pt-md-8 {
      padding-top: 4rem;
    }
    .pe-md-8 {
      padding-right: 4rem;
    }
    .pb-md-8 {
      padding-bottom: 4rem;
    }
    .ps-md-8 {
      padding-left: 4rem;
    }
    .px-md-8 {
      padding-left: 4rem;
      padding-right: 4rem;
    }
    .py-md-8 {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    .p-md-8 {
      padding: 4rem;
    }
    .m-md-n1 {
      margin: -0.25rem;
    }
    .mt-md-n1 {
      margin-top: -0.25rem;
    }
    .mb-md-n1 {
      margin-bottom: -0.25rem;
    }
    .ms-md-n1 {
      margin-left: -0.25rem;
    }
    .me-md-n1 {
      margin-right: -0.25rem;
    }
    .mx-md-n1 {
      margin-left: -0.25rem;
      margin-right: -0.25rem;
    }
    .m-md-n2 {
      margin: -0.5rem;
    }
    .mt-md-n2 {
      margin-top: -0.5rem;
    }
    .mb-md-n2 {
      margin-bottom: -0.5rem;
    }
    .ms-md-n2 {
      margin-left: -0.5rem;
    }
    .me-md-n2 {
      margin-right: -0.5rem;
    }
    .mx-md-n2 {
      margin-left: -0.5rem;
      margin-right: -0.5rem;
    }
    .m-md-n3 {
      margin: -0.75rem;
    }
    .mt-md-n3 {
      margin-top: -0.75rem;
    }
    .mb-md-n3 {
      margin-bottom: -0.75rem;
    }
    .ms-md-n3 {
      margin-left: -0.75rem;
    }
    .me-md-n3 {
      margin-right: -0.75rem;
    }
    .mx-md-n3 {
      margin-left: -0.75rem;
      margin-right: -0.75rem;
    }
    .m-md-n4 {
      margin: -1rem;
    }
    .mt-md-n4 {
      margin-top: -1rem;
    }
    .mb-md-n4 {
      margin-bottom: -1rem;
    }
    .ms-md-n4 {
      margin-left: -1rem;
    }
    .me-md-n4 {
      margin-right: -1rem;
    }
    .mx-md-n4 {
      margin-left: -1rem;
      margin-right: -1rem;
    }
    .m-md-n5 {
      margin: -1.5rem;
    }
    .mt-md-n5 {
      margin-top: -1.5rem;
    }
    .mb-md-n5 {
      margin-bottom: -1.5rem;
    }
    .ms-md-n5 {
      margin-left: -1.5rem;
    }
    .me-md-n5 {
      margin-right: -1.5rem;
    }
    .mx-md-n5 {
      margin-left: -1.5rem;
      margin-right: -1.5rem;
    }
    .m-md-n6 {
      margin: -2rem;
    }
    .mt-md-n6 {
      margin-top: -2rem;
    }
    .mb-md-n6 {
      margin-bottom: -2rem;
    }
    .ms-md-n6 {
      margin-left: -2rem;
    }
    .me-md-n6 {
      margin-right: -2rem;
    }
    .mx-md-n6 {
      margin-left: -2rem;
      margin-right: -2rem;
    }
    .m-md-n7 {
      margin: -3rem;
    }
    .mt-md-n7 {
      margin-top: -3rem;
    }
    .mb-md-n7 {
      margin-bottom: -3rem;
    }
    .ms-md-n7 {
      margin-left: -3rem;
    }
    .me-md-n7 {
      margin-right: -3rem;
    }
    .mx-md-n7 {
      margin-left: -3rem;
      margin-right: -3rem;
    }
    .m-md-n8 {
      margin: -4rem;
    }
    .mt-md-n8 {
      margin-top: -4rem;
    }
    .mb-md-n8 {
      margin-bottom: -4rem;
    }
    .ms-md-n8 {
      margin-left: -4rem;
    }
    .me-md-n8 {
      margin-right: -4rem;
    }
    .mx-md-n8 {
      margin-left: -4rem;
      margin-right: -4rem;
    }
    .m-md-auto {
      margin: auto;
    }
    .mt-md-auto {
      margin-top: auto;
    }
    .mb-md-auto {
      margin-bottom: auto;
    }
    .ms-md-auto {
      margin-left: auto;
    }
    .me-md-auto {
      margin-right: auto;
    }
    .mx-md-auto {
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media (min-width: 992px) {
    .mt-lg-0 {
      margin-top: 0;
    }
    .me-lg-0 {
      margin-right: 0;
    }
    .mb-lg-0 {
      margin-bottom: 0;
    }
    .ms-lg-0 {
      margin-left: 0;
    }
    .mx-lg-0 {
      margin-left: 0;
      margin-right: 0;
    }
    .my-lg-0 {
      margin-top: 0;
      margin-bottom: 0;
    }
    .m-lg-0 {
      margin: 0;
    }
    .mt-lg-1 {
      margin-top: 0.25rem;
    }
    .me-lg-1 {
      margin-right: 0.25rem;
    }
    .mb-lg-1 {
      margin-bottom: 0.25rem;
    }
    .ms-lg-1 {
      margin-left: 0.25rem;
    }
    .mx-lg-1 {
      margin-left: 0.25rem;
      margin-right: 0.25rem;
    }
    .my-lg-1 {
      margin-top: 0.25rem;
      margin-bottom: 0.25rem;
    }
    .m-lg-1 {
      margin: 0.25rem;
    }
    .mt-lg-2 {
      margin-top: 0.5rem;
    }
    .me-lg-2 {
      margin-right: 0.5rem;
    }
    .mb-lg-2 {
      margin-bottom: 0.5rem;
    }
    .ms-lg-2 {
      margin-left: 0.5rem;
    }
    .mx-lg-2 {
      margin-left: 0.5rem;
      margin-right: 0.5rem;
    }
    .my-lg-2 {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .m-lg-2 {
      margin: 0.5rem;
    }
    .mt-lg-3 {
      margin-top: 0.75rem;
    }
    .me-lg-3 {
      margin-right: 0.75rem;
    }
    .mb-lg-3 {
      margin-bottom: 0.75rem;
    }
    .ms-lg-3 {
      margin-left: 0.75rem;
    }
    .mx-lg-3 {
      margin-left: 0.75rem;
      margin-right: 0.75rem;
    }
    .my-lg-3 {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }
    .m-lg-3 {
      margin: 0.75rem;
    }
    .mt-lg-4 {
      margin-top: 1rem;
    }
    .me-lg-4 {
      margin-right: 1rem;
    }
    .mb-lg-4 {
      margin-bottom: 1rem;
    }
    .ms-lg-4 {
      margin-left: 1rem;
    }
    .mx-lg-4 {
      margin-left: 1rem;
      margin-right: 1rem;
    }
    .my-lg-4 {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }
    .m-lg-4 {
      margin: 1rem;
    }
    .mt-lg-5 {
      margin-top: 1.5rem;
    }
    .me-lg-5 {
      margin-right: 1.5rem;
    }
    .mb-lg-5 {
      margin-bottom: 1.5rem;
    }
    .ms-lg-5 {
      margin-left: 1.5rem;
    }
    .mx-lg-5 {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
    }
    .my-lg-5 {
      margin-top: 1.5rem;
      margin-bottom: 1.5rem;
    }
    .m-lg-5 {
      margin: 1.5rem;
    }
    .mt-lg-6 {
      margin-top: 2rem;
    }
    .me-lg-6 {
      margin-right: 2rem;
    }
    .mb-lg-6 {
      margin-bottom: 2rem;
    }
    .ms-lg-6 {
      margin-left: 2rem;
    }
    .mx-lg-6 {
      margin-left: 2rem;
      margin-right: 2rem;
    }
    .my-lg-6 {
      margin-top: 2rem;
      margin-bottom: 2rem;
    }
    .m-lg-6 {
      margin: 2rem;
    }
    .mt-lg-7 {
      margin-top: 3rem;
    }
    .me-lg-7 {
      margin-right: 3rem;
    }
    .mb-lg-7 {
      margin-bottom: 3rem;
    }
    .ms-lg-7 {
      margin-left: 3rem;
    }
    .mx-lg-7 {
      margin-left: 3rem;
      margin-right: 3rem;
    }
    .my-lg-7 {
      margin-top: 3rem;
      margin-bottom: 3rem;
    }
    .m-lg-7 {
      margin: 3rem;
    }
    .mt-lg-8 {
      margin-top: 4rem;
    }
    .me-lg-8 {
      margin-right: 4rem;
    }
    .mb-lg-8 {
      margin-bottom: 4rem;
    }
    .ms-lg-8 {
      margin-left: 4rem;
    }
    .mx-lg-8 {
      margin-left: 4rem;
      margin-right: 4rem;
    }
    .my-lg-8 {
      margin-top: 4rem;
      margin-bottom: 4rem;
    }
    .m-lg-8 {
      margin: 4rem;
    }
    .pt-lg-0 {
      padding-top: 0;
    }
    .pe-lg-0 {
      padding-right: 0;
    }
    .pb-lg-0 {
      padding-bottom: 0;
    }
    .ps-lg-0 {
      padding-left: 0;
    }
    .px-lg-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .py-lg-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .p-lg-0 {
      padding: 0;
    }
    .pt-lg-1 {
      padding-top: 0.25rem;
    }
    .pe-lg-1 {
      padding-right: 0.25rem;
    }
    .pb-lg-1 {
      padding-bottom: 0.25rem;
    }
    .ps-lg-1 {
      padding-left: 0.25rem;
    }
    .px-lg-1 {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
    .py-lg-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }
    .p-lg-1 {
      padding: 0.25rem;
    }
    .pt-lg-2 {
      padding-top: 0.5rem;
    }
    .pe-lg-2 {
      padding-right: 0.5rem;
    }
    .pb-lg-2 {
      padding-bottom: 0.5rem;
    }
    .ps-lg-2 {
      padding-left: 0.5rem;
    }
    .px-lg-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .py-lg-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .p-lg-2 {
      padding: 0.5rem;
    }
    .pt-lg-3 {
      padding-top: 0.75rem;
    }
    .pe-lg-3 {
      padding-right: 0.75rem;
    }
    .pb-lg-3 {
      padding-bottom: 0.75rem;
    }
    .ps-lg-3 {
      padding-left: 0.75rem;
    }
    .px-lg-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }
    .py-lg-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    .p-lg-3 {
      padding: 0.75rem;
    }
    .pt-lg-4 {
      padding-top: 1rem;
    }
    .pe-lg-4 {
      padding-right: 1rem;
    }
    .pb-lg-4 {
      padding-bottom: 1rem;
    }
    .ps-lg-4 {
      padding-left: 1rem;
    }
    .px-lg-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    .py-lg-4 {
      padding-top: 1rem;
      padding-bottom: 1rem;
    }
    .p-lg-4 {
      padding: 1rem;
    }
    .pt-lg-5 {
      padding-top: 1.5rem;
    }
    .pe-lg-5 {
      padding-right: 1.5rem;
    }
    .pb-lg-5 {
      padding-bottom: 1.5rem;
    }
    .ps-lg-5 {
      padding-left: 1.5rem;
    }
    .px-lg-5 {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
    .py-lg-5 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }
    .p-lg-5 {
      padding: 1.5rem;
    }
    .pt-lg-6 {
      padding-top: 2rem;
    }
    .pe-lg-6 {
      padding-right: 2rem;
    }
    .pb-lg-6 {
      padding-bottom: 2rem;
    }
    .ps-lg-6 {
      padding-left: 2rem;
    }
    .px-lg-6 {
      padding-left: 2rem;
      padding-right: 2rem;
    }
    .py-lg-6 {
      padding-top: 2rem;
      padding-bottom: 2rem;
    }
    .p-lg-6 {
      padding: 2rem;
    }
    .pt-lg-7 {
      padding-top: 3rem;
    }
    .pe-lg-7 {
      padding-right: 3rem;
    }
    .pb-lg-7 {
      padding-bottom: 3rem;
    }
    .ps-lg-7 {
      padding-left: 3rem;
    }
    .px-lg-7 {
      padding-left: 3rem;
      padding-right: 3rem;
    }
    .py-lg-7 {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .p-lg-7 {
      padding: 3rem;
    }
    .pt-lg-8 {
      padding-top: 4rem;
    }
    .pe-lg-8 {
      padding-right: 4rem;
    }
    .pb-lg-8 {
      padding-bottom: 4rem;
    }
    .ps-lg-8 {
      padding-left: 4rem;
    }
    .px-lg-8 {
      padding-left: 4rem;
      padding-right: 4rem;
    }
    .py-lg-8 {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    .p-lg-8 {
      padding: 4rem;
    }
    .m-lg-n1 {
      margin: -0.25rem;
    }
    .mt-lg-n1 {
      margin-top: -0.25rem;
    }
    .mb-lg-n1 {
      margin-bottom: -0.25rem;
    }
    .ms-lg-n1 {
      margin-left: -0.25rem;
    }
    .me-lg-n1 {
      margin-right: -0.25rem;
    }
    .mx-lg-n1 {
      margin-left: -0.25rem;
      margin-right: -0.25rem;
    }
    .m-lg-n2 {
      margin: -0.5rem;
    }
    .mt-lg-n2 {
      margin-top: -0.5rem;
    }
    .mb-lg-n2 {
      margin-bottom: -0.5rem;
    }
    .ms-lg-n2 {
      margin-left: -0.5rem;
    }
    .me-lg-n2 {
      margin-right: -0.5rem;
    }
    .mx-lg-n2 {
      margin-left: -0.5rem;
      margin-right: -0.5rem;
    }
    .m-lg-n3 {
      margin: -0.75rem;
    }
    .mt-lg-n3 {
      margin-top: -0.75rem;
    }
    .mb-lg-n3 {
      margin-bottom: -0.75rem;
    }
    .ms-lg-n3 {
      margin-left: -0.75rem;
    }
    .me-lg-n3 {
      margin-right: -0.75rem;
    }
    .mx-lg-n3 {
      margin-left: -0.75rem;
      margin-right: -0.75rem;
    }
    .m-lg-n4 {
      margin: -1rem;
    }
    .mt-lg-n4 {
      margin-top: -1rem;
    }
    .mb-lg-n4 {
      margin-bottom: -1rem;
    }
    .ms-lg-n4 {
      margin-left: -1rem;
    }
    .me-lg-n4 {
      margin-right: -1rem;
    }
    .mx-lg-n4 {
      margin-left: -1rem;
      margin-right: -1rem;
    }
    .m-lg-n5 {
      margin: -1.5rem;
    }
    .mt-lg-n5 {
      margin-top: -1.5rem;
    }
    .mb-lg-n5 {
      margin-bottom: -1.5rem;
    }
    .ms-lg-n5 {
      margin-left: -1.5rem;
    }
    .me-lg-n5 {
      margin-right: -1.5rem;
    }
    .mx-lg-n5 {
      margin-left: -1.5rem;
      margin-right: -1.5rem;
    }
    .m-lg-n6 {
      margin: -2rem;
    }
    .mt-lg-n6 {
      margin-top: -2rem;
    }
    .mb-lg-n6 {
      margin-bottom: -2rem;
    }
    .ms-lg-n6 {
      margin-left: -2rem;
    }
    .me-lg-n6 {
      margin-right: -2rem;
    }
    .mx-lg-n6 {
      margin-left: -2rem;
      margin-right: -2rem;
    }
    .m-lg-n7 {
      margin: -3rem;
    }
    .mt-lg-n7 {
      margin-top: -3rem;
    }
    .mb-lg-n7 {
      margin-bottom: -3rem;
    }
    .ms-lg-n7 {
      margin-left: -3rem;
    }
    .me-lg-n7 {
      margin-right: -3rem;
    }
    .mx-lg-n7 {
      margin-left: -3rem;
      margin-right: -3rem;
    }
    .m-lg-n8 {
      margin: -4rem;
    }
    .mt-lg-n8 {
      margin-top: -4rem;
    }
    .mb-lg-n8 {
      margin-bottom: -4rem;
    }
    .ms-lg-n8 {
      margin-left: -4rem;
    }
    .me-lg-n8 {
      margin-right: -4rem;
    }
    .mx-lg-n8 {
      margin-left: -4rem;
      margin-right: -4rem;
    }
    .m-lg-auto {
      margin: auto;
    }
    .mt-lg-auto {
      margin-top: auto;
    }
    .mb-lg-auto {
      margin-bottom: auto;
    }
    .ms-lg-auto {
      margin-left: auto;
    }
    .me-lg-auto {
      margin-right: auto;
    }
    .mx-lg-auto {
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media (min-width: 1200px) {
    .mt-xl-0 {
      margin-top: 0;
    }
    .me-xl-0 {
      margin-right: 0;
    }
    .mb-xl-0 {
      margin-bottom: 0;
    }
    .ms-xl-0 {
      margin-left: 0;
    }
    .mx-xl-0 {
      margin-left: 0;
      margin-right: 0;
    }
    .my-xl-0 {
      margin-top: 0;
      margin-bottom: 0;
    }
    .m-xl-0 {
      margin: 0;
    }
    .mt-xl-1 {
      margin-top: 0.25rem;
    }
    .me-xl-1 {
      margin-right: 0.25rem;
    }
    .mb-xl-1 {
      margin-bottom: 0.25rem;
    }
    .ms-xl-1 {
      margin-left: 0.25rem;
    }
    .mx-xl-1 {
      margin-left: 0.25rem;
      margin-right: 0.25rem;
    }
    .my-xl-1 {
      margin-top: 0.25rem;
      margin-bottom: 0.25rem;
    }
    .m-xl-1 {
      margin: 0.25rem;
    }
    .mt-xl-2 {
      margin-top: 0.5rem;
    }
    .me-xl-2 {
      margin-right: 0.5rem;
    }
    .mb-xl-2 {
      margin-bottom: 0.5rem;
    }
    .ms-xl-2 {
      margin-left: 0.5rem;
    }
    .mx-xl-2 {
      margin-left: 0.5rem;
      margin-right: 0.5rem;
    }
    .my-xl-2 {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .m-xl-2 {
      margin: 0.5rem;
    }
    .mt-xl-3 {
      margin-top: 0.75rem;
    }
    .me-xl-3 {
      margin-right: 0.75rem;
    }
    .mb-xl-3 {
      margin-bottom: 0.75rem;
    }
    .ms-xl-3 {
      margin-left: 0.75rem;
    }
    .mx-xl-3 {
      margin-left: 0.75rem;
      margin-right: 0.75rem;
    }
    .my-xl-3 {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }
    .m-xl-3 {
      margin: 0.75rem;
    }
    .mt-xl-4 {
      margin-top: 1rem;
    }
    .me-xl-4 {
      margin-right: 1rem;
    }
    .mb-xl-4 {
      margin-bottom: 1rem;
    }
    .ms-xl-4 {
      margin-left: 1rem;
    }
    .mx-xl-4 {
      margin-left: 1rem;
      margin-right: 1rem;
    }
    .my-xl-4 {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }
    .m-xl-4 {
      margin: 1rem;
    }
    .mt-xl-5 {
      margin-top: 1.5rem;
    }
    .me-xl-5 {
      margin-right: 1.5rem;
    }
    .mb-xl-5 {
      margin-bottom: 1.5rem;
    }
    .ms-xl-5 {
      margin-left: 1.5rem;
    }
    .mx-xl-5 {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
    }
    .my-xl-5 {
      margin-top: 1.5rem;
      margin-bottom: 1.5rem;
    }
    .m-xl-5 {
      margin: 1.5rem;
    }
    .mt-xl-6 {
      margin-top: 2rem;
    }
    .me-xl-6 {
      margin-right: 2rem;
    }
    .mb-xl-6 {
      margin-bottom: 2rem;
    }
    .ms-xl-6 {
      margin-left: 2rem;
    }
    .mx-xl-6 {
      margin-left: 2rem;
      margin-right: 2rem;
    }
    .my-xl-6 {
      margin-top: 2rem;
      margin-bottom: 2rem;
    }
    .m-xl-6 {
      margin: 2rem;
    }
    .mt-xl-7 {
      margin-top: 3rem;
    }
    .me-xl-7 {
      margin-right: 3rem;
    }
    .mb-xl-7 {
      margin-bottom: 3rem;
    }
    .ms-xl-7 {
      margin-left: 3rem;
    }
    .mx-xl-7 {
      margin-left: 3rem;
      margin-right: 3rem;
    }
    .my-xl-7 {
      margin-top: 3rem;
      margin-bottom: 3rem;
    }
    .m-xl-7 {
      margin: 3rem;
    }
    .mt-xl-8 {
      margin-top: 4rem;
    }
    .me-xl-8 {
      margin-right: 4rem;
    }
    .mb-xl-8 {
      margin-bottom: 4rem;
    }
    .ms-xl-8 {
      margin-left: 4rem;
    }
    .mx-xl-8 {
      margin-left: 4rem;
      margin-right: 4rem;
    }
    .my-xl-8 {
      margin-top: 4rem;
      margin-bottom: 4rem;
    }
    .m-xl-8 {
      margin: 4rem;
    }
    .pt-xl-0 {
      padding-top: 0;
    }
    .pe-xl-0 {
      padding-right: 0;
    }
    .pb-xl-0 {
      padding-bottom: 0;
    }
    .ps-xl-0 {
      padding-left: 0;
    }
    .px-xl-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .py-xl-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .p-xl-0 {
      padding: 0;
    }
    .pt-xl-1 {
      padding-top: 0.25rem;
    }
    .pe-xl-1 {
      padding-right: 0.25rem;
    }
    .pb-xl-1 {
      padding-bottom: 0.25rem;
    }
    .ps-xl-1 {
      padding-left: 0.25rem;
    }
    .px-xl-1 {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
    .py-xl-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }
    .p-xl-1 {
      padding: 0.25rem;
    }
    .pt-xl-2 {
      padding-top: 0.5rem;
    }
    .pe-xl-2 {
      padding-right: 0.5rem;
    }
    .pb-xl-2 {
      padding-bottom: 0.5rem;
    }
    .ps-xl-2 {
      padding-left: 0.5rem;
    }
    .px-xl-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .py-xl-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .p-xl-2 {
      padding: 0.5rem;
    }
    .pt-xl-3 {
      padding-top: 0.75rem;
    }
    .pe-xl-3 {
      padding-right: 0.75rem;
    }
    .pb-xl-3 {
      padding-bottom: 0.75rem;
    }
    .ps-xl-3 {
      padding-left: 0.75rem;
    }
    .px-xl-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }
    .py-xl-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    .p-xl-3 {
      padding: 0.75rem;
    }
    .pt-xl-4 {
      padding-top: 1rem;
    }
    .pe-xl-4 {
      padding-right: 1rem;
    }
    .pb-xl-4 {
      padding-bottom: 1rem;
    }
    .ps-xl-4 {
      padding-left: 1rem;
    }
    .px-xl-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    .py-xl-4 {
      padding-top: 1rem;
      padding-bottom: 1rem;
    }
    .p-xl-4 {
      padding: 1rem;
    }
    .pt-xl-5 {
      padding-top: 1.5rem;
    }
    .pe-xl-5 {
      padding-right: 1.5rem;
    }
    .pb-xl-5 {
      padding-bottom: 1.5rem;
    }
    .ps-xl-5 {
      padding-left: 1.5rem;
    }
    .px-xl-5 {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
    .py-xl-5 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }
    .p-xl-5 {
      padding: 1.5rem;
    }
    .pt-xl-6 {
      padding-top: 2rem;
    }
    .pe-xl-6 {
      padding-right: 2rem;
    }
    .pb-xl-6 {
      padding-bottom: 2rem;
    }
    .ps-xl-6 {
      padding-left: 2rem;
    }
    .px-xl-6 {
      padding-left: 2rem;
      padding-right: 2rem;
    }
    .py-xl-6 {
      padding-top: 2rem;
      padding-bottom: 2rem;
    }
    .p-xl-6 {
      padding: 2rem;
    }
    .pt-xl-7 {
      padding-top: 3rem;
    }
    .pe-xl-7 {
      padding-right: 3rem;
    }
    .pb-xl-7 {
      padding-bottom: 3rem;
    }
    .ps-xl-7 {
      padding-left: 3rem;
    }
    .px-xl-7 {
      padding-left: 3rem;
      padding-right: 3rem;
    }
    .py-xl-7 {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .p-xl-7 {
      padding: 3rem;
    }
    .pt-xl-8 {
      padding-top: 4rem;
    }
    .pe-xl-8 {
      padding-right: 4rem;
    }
    .pb-xl-8 {
      padding-bottom: 4rem;
    }
    .ps-xl-8 {
      padding-left: 4rem;
    }
    .px-xl-8 {
      padding-left: 4rem;
      padding-right: 4rem;
    }
    .py-xl-8 {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    .p-xl-8 {
      padding: 4rem;
    }
    .m-xl-n1 {
      margin: -0.25rem;
    }
    .mt-xl-n1 {
      margin-top: -0.25rem;
    }
    .mb-xl-n1 {
      margin-bottom: -0.25rem;
    }
    .ms-xl-n1 {
      margin-left: -0.25rem;
    }
    .me-xl-n1 {
      margin-right: -0.25rem;
    }
    .mx-xl-n1 {
      margin-left: -0.25rem;
      margin-right: -0.25rem;
    }
    .m-xl-n2 {
      margin: -0.5rem;
    }
    .mt-xl-n2 {
      margin-top: -0.5rem;
    }
    .mb-xl-n2 {
      margin-bottom: -0.5rem;
    }
    .ms-xl-n2 {
      margin-left: -0.5rem;
    }
    .me-xl-n2 {
      margin-right: -0.5rem;
    }
    .mx-xl-n2 {
      margin-left: -0.5rem;
      margin-right: -0.5rem;
    }
    .m-xl-n3 {
      margin: -0.75rem;
    }
    .mt-xl-n3 {
      margin-top: -0.75rem;
    }
    .mb-xl-n3 {
      margin-bottom: -0.75rem;
    }
    .ms-xl-n3 {
      margin-left: -0.75rem;
    }
    .me-xl-n3 {
      margin-right: -0.75rem;
    }
    .mx-xl-n3 {
      margin-left: -0.75rem;
      margin-right: -0.75rem;
    }
    .m-xl-n4 {
      margin: -1rem;
    }
    .mt-xl-n4 {
      margin-top: -1rem;
    }
    .mb-xl-n4 {
      margin-bottom: -1rem;
    }
    .ms-xl-n4 {
      margin-left: -1rem;
    }
    .me-xl-n4 {
      margin-right: -1rem;
    }
    .mx-xl-n4 {
      margin-left: -1rem;
      margin-right: -1rem;
    }
    .m-xl-n5 {
      margin: -1.5rem;
    }
    .mt-xl-n5 {
      margin-top: -1.5rem;
    }
    .mb-xl-n5 {
      margin-bottom: -1.5rem;
    }
    .ms-xl-n5 {
      margin-left: -1.5rem;
    }
    .me-xl-n5 {
      margin-right: -1.5rem;
    }
    .mx-xl-n5 {
      margin-left: -1.5rem;
      margin-right: -1.5rem;
    }
    .m-xl-n6 {
      margin: -2rem;
    }
    .mt-xl-n6 {
      margin-top: -2rem;
    }
    .mb-xl-n6 {
      margin-bottom: -2rem;
    }
    .ms-xl-n6 {
      margin-left: -2rem;
    }
    .me-xl-n6 {
      margin-right: -2rem;
    }
    .mx-xl-n6 {
      margin-left: -2rem;
      margin-right: -2rem;
    }
    .m-xl-n7 {
      margin: -3rem;
    }
    .mt-xl-n7 {
      margin-top: -3rem;
    }
    .mb-xl-n7 {
      margin-bottom: -3rem;
    }
    .ms-xl-n7 {
      margin-left: -3rem;
    }
    .me-xl-n7 {
      margin-right: -3rem;
    }
    .mx-xl-n7 {
      margin-left: -3rem;
      margin-right: -3rem;
    }
    .m-xl-n8 {
      margin: -4rem;
    }
    .mt-xl-n8 {
      margin-top: -4rem;
    }
    .mb-xl-n8 {
      margin-bottom: -4rem;
    }
    .ms-xl-n8 {
      margin-left: -4rem;
    }
    .me-xl-n8 {
      margin-right: -4rem;
    }
    .mx-xl-n8 {
      margin-left: -4rem;
      margin-right: -4rem;
    }
    .m-xl-auto {
      margin: auto;
    }
    .mt-xl-auto {
      margin-top: auto;
    }
    .mb-xl-auto {
      margin-bottom: auto;
    }
    .ms-xl-auto {
      margin-left: auto;
    }
    .me-xl-auto {
      margin-right: auto;
    }
    .mx-xl-auto {
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media (min-width: 1400px) {
    .mt-xxl-0 {
      margin-top: 0;
    }
    .me-xxl-0 {
      margin-right: 0;
    }
    .mb-xxl-0 {
      margin-bottom: 0;
    }
    .ms-xxl-0 {
      margin-left: 0;
    }
    .mx-xxl-0 {
      margin-left: 0;
      margin-right: 0;
    }
    .my-xxl-0 {
      margin-top: 0;
      margin-bottom: 0;
    }
    .m-xxl-0 {
      margin: 0;
    }
    .mt-xxl-1 {
      margin-top: 0.25rem;
    }
    .me-xxl-1 {
      margin-right: 0.25rem;
    }
    .mb-xxl-1 {
      margin-bottom: 0.25rem;
    }
    .ms-xxl-1 {
      margin-left: 0.25rem;
    }
    .mx-xxl-1 {
      margin-left: 0.25rem;
      margin-right: 0.25rem;
    }
    .my-xxl-1 {
      margin-top: 0.25rem;
      margin-bottom: 0.25rem;
    }
    .m-xxl-1 {
      margin: 0.25rem;
    }
    .mt-xxl-2 {
      margin-top: 0.5rem;
    }
    .me-xxl-2 {
      margin-right: 0.5rem;
    }
    .mb-xxl-2 {
      margin-bottom: 0.5rem;
    }
    .ms-xxl-2 {
      margin-left: 0.5rem;
    }
    .mx-xxl-2 {
      margin-left: 0.5rem;
      margin-right: 0.5rem;
    }
    .my-xxl-2 {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .m-xxl-2 {
      margin: 0.5rem;
    }
    .mt-xxl-3 {
      margin-top: 0.75rem;
    }
    .me-xxl-3 {
      margin-right: 0.75rem;
    }
    .mb-xxl-3 {
      margin-bottom: 0.75rem;
    }
    .ms-xxl-3 {
      margin-left: 0.75rem;
    }
    .mx-xxl-3 {
      margin-left: 0.75rem;
      margin-right: 0.75rem;
    }
    .my-xxl-3 {
      margin-top: 0.75rem;
      margin-bottom: 0.75rem;
    }
    .m-xxl-3 {
      margin: 0.75rem;
    }
    .mt-xxl-4 {
      margin-top: 1rem;
    }
    .me-xxl-4 {
      margin-right: 1rem;
    }
    .mb-xxl-4 {
      margin-bottom: 1rem;
    }
    .ms-xxl-4 {
      margin-left: 1rem;
    }
    .mx-xxl-4 {
      margin-left: 1rem;
      margin-right: 1rem;
    }
    .my-xxl-4 {
      margin-top: 1rem;
      margin-bottom: 1rem;
    }
    .m-xxl-4 {
      margin: 1rem;
    }
    .mt-xxl-5 {
      margin-top: 1.5rem;
    }
    .me-xxl-5 {
      margin-right: 1.5rem;
    }
    .mb-xxl-5 {
      margin-bottom: 1.5rem;
    }
    .ms-xxl-5 {
      margin-left: 1.5rem;
    }
    .mx-xxl-5 {
      margin-left: 1.5rem;
      margin-right: 1.5rem;
    }
    .my-xxl-5 {
      margin-top: 1.5rem;
      margin-bottom: 1.5rem;
    }
    .m-xxl-5 {
      margin: 1.5rem;
    }
    .mt-xxl-6 {
      margin-top: 2rem;
    }
    .me-xxl-6 {
      margin-right: 2rem;
    }
    .mb-xxl-6 {
      margin-bottom: 2rem;
    }
    .ms-xxl-6 {
      margin-left: 2rem;
    }
    .mx-xxl-6 {
      margin-left: 2rem;
      margin-right: 2rem;
    }
    .my-xxl-6 {
      margin-top: 2rem;
      margin-bottom: 2rem;
    }
    .m-xxl-6 {
      margin: 2rem;
    }
    .mt-xxl-7 {
      margin-top: 3rem;
    }
    .me-xxl-7 {
      margin-right: 3rem;
    }
    .mb-xxl-7 {
      margin-bottom: 3rem;
    }
    .ms-xxl-7 {
      margin-left: 3rem;
    }
    .mx-xxl-7 {
      margin-left: 3rem;
      margin-right: 3rem;
    }
    .my-xxl-7 {
      margin-top: 3rem;
      margin-bottom: 3rem;
    }
    .m-xxl-7 {
      margin: 3rem;
    }
    .mt-xxl-8 {
      margin-top: 4rem;
    }
    .me-xxl-8 {
      margin-right: 4rem;
    }
    .mb-xxl-8 {
      margin-bottom: 4rem;
    }
    .ms-xxl-8 {
      margin-left: 4rem;
    }
    .mx-xxl-8 {
      margin-left: 4rem;
      margin-right: 4rem;
    }
    .my-xxl-8 {
      margin-top: 4rem;
      margin-bottom: 4rem;
    }
    .m-xxl-8 {
      margin: 4rem;
    }
    .pt-xxl-0 {
      padding-top: 0;
    }
    .pe-xxl-0 {
      padding-right: 0;
    }
    .pb-xxl-0 {
      padding-bottom: 0;
    }
    .ps-xxl-0 {
      padding-left: 0;
    }
    .px-xxl-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .py-xxl-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .p-xxl-0 {
      padding: 0;
    }
    .pt-xxl-1 {
      padding-top: 0.25rem;
    }
    .pe-xxl-1 {
      padding-right: 0.25rem;
    }
    .pb-xxl-1 {
      padding-bottom: 0.25rem;
    }
    .ps-xxl-1 {
      padding-left: 0.25rem;
    }
    .px-xxl-1 {
      padding-left: 0.25rem;
      padding-right: 0.25rem;
    }
    .py-xxl-1 {
      padding-top: 0.25rem;
      padding-bottom: 0.25rem;
    }
    .p-xxl-1 {
      padding: 0.25rem;
    }
    .pt-xxl-2 {
      padding-top: 0.5rem;
    }
    .pe-xxl-2 {
      padding-right: 0.5rem;
    }
    .pb-xxl-2 {
      padding-bottom: 0.5rem;
    }
    .ps-xxl-2 {
      padding-left: 0.5rem;
    }
    .px-xxl-2 {
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .py-xxl-2 {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .p-xxl-2 {
      padding: 0.5rem;
    }
    .pt-xxl-3 {
      padding-top: 0.75rem;
    }
    .pe-xxl-3 {
      padding-right: 0.75rem;
    }
    .pb-xxl-3 {
      padding-bottom: 0.75rem;
    }
    .ps-xxl-3 {
      padding-left: 0.75rem;
    }
    .px-xxl-3 {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
    }
    .py-xxl-3 {
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    .p-xxl-3 {
      padding: 0.75rem;
    }
    .pt-xxl-4 {
      padding-top: 1rem;
    }
    .pe-xxl-4 {
      padding-right: 1rem;
    }
    .pb-xxl-4 {
      padding-bottom: 1rem;
    }
    .ps-xxl-4 {
      padding-left: 1rem;
    }
    .px-xxl-4 {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    .py-xxl-4 {
      padding-top: 1rem;
      padding-bottom: 1rem;
    }
    .p-xxl-4 {
      padding: 1rem;
    }
    .pt-xxl-5 {
      padding-top: 1.5rem;
    }
    .pe-xxl-5 {
      padding-right: 1.5rem;
    }
    .pb-xxl-5 {
      padding-bottom: 1.5rem;
    }
    .ps-xxl-5 {
      padding-left: 1.5rem;
    }
    .px-xxl-5 {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
    .py-xxl-5 {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
    }
    .p-xxl-5 {
      padding: 1.5rem;
    }
    .pt-xxl-6 {
      padding-top: 2rem;
    }
    .pe-xxl-6 {
      padding-right: 2rem;
    }
    .pb-xxl-6 {
      padding-bottom: 2rem;
    }
    .ps-xxl-6 {
      padding-left: 2rem;
    }
    .px-xxl-6 {
      padding-left: 2rem;
      padding-right: 2rem;
    }
    .py-xxl-6 {
      padding-top: 2rem;
      padding-bottom: 2rem;
    }
    .p-xxl-6 {
      padding: 2rem;
    }
    .pt-xxl-7 {
      padding-top: 3rem;
    }
    .pe-xxl-7 {
      padding-right: 3rem;
    }
    .pb-xxl-7 {
      padding-bottom: 3rem;
    }
    .ps-xxl-7 {
      padding-left: 3rem;
    }
    .px-xxl-7 {
      padding-left: 3rem;
      padding-right: 3rem;
    }
    .py-xxl-7 {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .p-xxl-7 {
      padding: 3rem;
    }
    .pt-xxl-8 {
      padding-top: 4rem;
    }
    .pe-xxl-8 {
      padding-right: 4rem;
    }
    .pb-xxl-8 {
      padding-bottom: 4rem;
    }
    .ps-xxl-8 {
      padding-left: 4rem;
    }
    .px-xxl-8 {
      padding-left: 4rem;
      padding-right: 4rem;
    }
    .py-xxl-8 {
      padding-top: 4rem;
      padding-bottom: 4rem;
    }
    .p-xxl-8 {
      padding: 4rem;
    }
    .m-xxl-n1 {
      margin: -0.25rem;
    }
    .mt-xxl-n1 {
      margin-top: -0.25rem;
    }
    .mb-xxl-n1 {
      margin-bottom: -0.25rem;
    }
    .ms-xxl-n1 {
      margin-left: -0.25rem;
    }
    .me-xxl-n1 {
      margin-right: -0.25rem;
    }
    .mx-xxl-n1 {
      margin-left: -0.25rem;
      margin-right: -0.25rem;
    }
    .m-xxl-n2 {
      margin: -0.5rem;
    }
    .mt-xxl-n2 {
      margin-top: -0.5rem;
    }
    .mb-xxl-n2 {
      margin-bottom: -0.5rem;
    }
    .ms-xxl-n2 {
      margin-left: -0.5rem;
    }
    .me-xxl-n2 {
      margin-right: -0.5rem;
    }
    .mx-xxl-n2 {
      margin-left: -0.5rem;
      margin-right: -0.5rem;
    }
    .m-xxl-n3 {
      margin: -0.75rem;
    }
    .mt-xxl-n3 {
      margin-top: -0.75rem;
    }
    .mb-xxl-n3 {
      margin-bottom: -0.75rem;
    }
    .ms-xxl-n3 {
      margin-left: -0.75rem;
    }
    .me-xxl-n3 {
      margin-right: -0.75rem;
    }
    .mx-xxl-n3 {
      margin-left: -0.75rem;
      margin-right: -0.75rem;
    }
    .m-xxl-n4 {
      margin: -1rem;
    }
    .mt-xxl-n4 {
      margin-top: -1rem;
    }
    .mb-xxl-n4 {
      margin-bottom: -1rem;
    }
    .ms-xxl-n4 {
      margin-left: -1rem;
    }
    .me-xxl-n4 {
      margin-right: -1rem;
    }
    .mx-xxl-n4 {
      margin-left: -1rem;
      margin-right: -1rem;
    }
    .m-xxl-n5 {
      margin: -1.5rem;
    }
    .mt-xxl-n5 {
      margin-top: -1.5rem;
    }
    .mb-xxl-n5 {
      margin-bottom: -1.5rem;
    }
    .ms-xxl-n5 {
      margin-left: -1.5rem;
    }
    .me-xxl-n5 {
      margin-right: -1.5rem;
    }
    .mx-xxl-n5 {
      margin-left: -1.5rem;
      margin-right: -1.5rem;
    }
    .m-xxl-n6 {
      margin: -2rem;
    }
    .mt-xxl-n6 {
      margin-top: -2rem;
    }
    .mb-xxl-n6 {
      margin-bottom: -2rem;
    }
    .ms-xxl-n6 {
      margin-left: -2rem;
    }
    .me-xxl-n6 {
      margin-right: -2rem;
    }
    .mx-xxl-n6 {
      margin-left: -2rem;
      margin-right: -2rem;
    }
    .m-xxl-n7 {
      margin: -3rem;
    }
    .mt-xxl-n7 {
      margin-top: -3rem;
    }
    .mb-xxl-n7 {
      margin-bottom: -3rem;
    }
    .ms-xxl-n7 {
      margin-left: -3rem;
    }
    .me-xxl-n7 {
      margin-right: -3rem;
    }
    .mx-xxl-n7 {
      margin-left: -3rem;
      margin-right: -3rem;
    }
    .m-xxl-n8 {
      margin: -4rem;
    }
    .mt-xxl-n8 {
      margin-top: -4rem;
    }
    .mb-xxl-n8 {
      margin-bottom: -4rem;
    }
    .ms-xxl-n8 {
      margin-left: -4rem;
    }
    .me-xxl-n8 {
      margin-right: -4rem;
    }
    .mx-xxl-n8 {
      margin-left: -4rem;
      margin-right: -4rem;
    }
    .m-xxl-auto {
      margin: auto;
    }
    .mt-xxl-auto {
      margin-top: auto;
    }
    .mb-xxl-auto {
      margin-bottom: auto;
    }
    .ms-xxl-auto {
      margin-left: auto;
    }
    .me-xxl-auto {
      margin-right: auto;
    }
    .mx-xxl-auto {
      margin-left: auto;
      margin-right: auto;
    }
  }
}
@layer utilities {
  .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: 0.25rem;
  }
  .gap-2 {
    gap: 0.5rem;
  }
  .gap-3 {
    gap: 0.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: 0.75rem;
  }
  .fs-sm {
    font-size: 0.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: clamp(1.5rem, 5vw, 1.875rem);
  }
  .fs-4xl {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }
  .fs-5xl {
    font-size: clamp(2.25rem, 8vw, 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;
  }
  .bg-primary {
    background-color: #6d4af5;
  }
  .border-primary {
    border-color: #6d4af5;
  }
  .text-secondary {
    color: #7c8aa5;
  }
  .bg-secondary {
    background-color: #7c8aa5;
  }
  .border-secondary {
    border-color: #7c8aa5;
  }
  .text-success {
    color: #34d399;
  }
  .bg-success {
    background-color: #34d399;
  }
  .border-success {
    border-color: #34d399;
  }
  .text-danger {
    color: #fb5b78;
  }
  .bg-danger {
    background-color: #fb5b78;
  }
  .border-danger {
    border-color: #fb5b78;
  }
  .text-warning {
    color: #fbbf24;
  }
  .bg-warning {
    background-color: #fbbf24;
  }
  .border-warning {
    border-color: #fbbf24;
  }
  .text-info {
    color: #22d3ee;
  }
  .bg-info {
    background-color: #22d3ee;
  }
  .border-info {
    border-color: #22d3ee;
  }
  .text-accent {
    color: #e879f9;
  }
  .bg-accent {
    background-color: #e879f9;
  }
  .border-accent {
    border-color: #e879f9;
  }
  .text-light {
    color: #e7ecf5;
  }
  .bg-light {
    background-color: #e7ecf5;
  }
  .border-light {
    border-color: #e7ecf5;
  }
  .text-dark {
    color: #0b0f1d;
  }
  .bg-dark {
    background-color: #0b0f1d;
  }
  .border-dark {
    border-color: #0b0f1d;
  }
  .text-white {
    color: #ffffff;
  }
  .text-body {
    color: var(--fv-body-color);
  }
  .text-muted {
    color: var(--fv-muted);
  }
  .bg-white {
    background-color: #ffffff;
  }
  .bg-body {
    background-color: var(--fv-body-bg);
  }
  .bg-surface {
    background-color: var(--fv-surface-solid);
  }
  .bg-transparent {
    background-color: transparent;
  }
  .text-gray-100 {
    color: #f1f5f9;
  }
  .bg-gray-100 {
    background-color: #f1f5f9;
  }
  .text-gray-200 {
    color: #e2e8f0;
  }
  .bg-gray-200 {
    background-color: #e2e8f0;
  }
  .text-gray-300 {
    color: #cbd5e1;
  }
  .bg-gray-300 {
    background-color: #cbd5e1;
  }
  .text-gray-400 {
    color: #94a3b8;
  }
  .bg-gray-400 {
    background-color: #94a3b8;
  }
  .text-gray-500 {
    color: #64748b;
  }
  .bg-gray-500 {
    background-color: #64748b;
  }
  .text-gray-600 {
    color: #475569;
  }
  .bg-gray-600 {
    background-color: #475569;
  }
  .text-gray-700 {
    color: #334155;
  }
  .bg-gray-700 {
    background-color: #334155;
  }
  .text-gray-800 {
    color: #1e293b;
  }
  .bg-gray-800 {
    background-color: #1e293b;
  }
  .text-gray-900 {
    color: #0f172a;
  }
  .bg-gray-900 {
    background-color: #0f172a;
  }
  .border {
    border: 1px solid var(--fv-border-color);
  }
  .border-0 {
    border: 0;
  }
  .border-top {
    border-top: 1px solid var(--fv-border-color);
  }
  .border-end {
    border-right: 1px solid var(--fv-border-color);
  }
  .border-bottom {
    border-bottom: 1px solid var(--fv-border-color);
  }
  .border-start {
    border-left: 1px solid var(--fv-border-color);
  }
  .rounded-none {
    border-radius: 0;
  }
  .rounded-sm {
    border-radius: 0.375rem;
  }
  .rounded-md {
    border-radius: 0.625rem;
  }
  .rounded-lg {
    border-radius: 0.875rem;
  }
  .rounded-xl {
    border-radius: 1.125rem;
  }
  .rounded-2xl {
    border-radius: 1.5rem;
  }
  .rounded-pill {
    border-radius: 50rem;
  }
  .rounded-full {
    border-radius: 50%;
  }
  .rounded {
    border-radius: 0.75rem;
  }
  .rounded-0 {
    border-radius: 0;
  }
  .rounded-circle {
    border-radius: 50%;
  }
  .shadow-sm {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  }
  .shadow-md {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
  }
  .shadow-lg {
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.45);
  }
  .shadow-xl {
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55);
  }
  .shadow-none {
    box-shadow: none;
  }
  .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: 0.1;
  }
  .opacity-20 {
    opacity: 0.2;
  }
  .opacity-30 {
    opacity: 0.3;
  }
  .opacity-40 {
    opacity: 0.4;
  }
  .opacity-50 {
    opacity: 0.5;
  }
  .opacity-60 {
    opacity: 0.6;
  }
  .opacity-70 {
    opacity: 0.7;
  }
  .opacity-80 {
    opacity: 0.8;
  }
  .opacity-90 {
    opacity: 0.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;
  }
  .skip-link {
    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;
  }
  .skip-link:focus,
  .skip-link:focus-visible {
    position: fixed !important;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 1030;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0.5rem 1rem;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: nowrap;
    color: var(--fv-body-color);
    background-color: var(--fv-glass-bg-strong);
    border: 1px solid var(--fv-glass-border);
    border-radius: 0.625rem;
    box-shadow: var(--fv-shadow-lg);
  }
  .user-select-none {
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
  .user-select-all {
    -webkit-user-select: all;
       -moz-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: 0.5rem;
  }
}
@layer utilities {
  .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 rgba(255, 255, 255, 0.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 rgba(255, 255, 255, 0.1);
  }
  .glass-flat {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .bg-gradient-primary {
    background-image: linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%);
  }
  .bg-gradient-accent {
    background-image: linear-gradient(135deg, #e879f9 0%, #6d4af5 100%);
  }
  .bg-gradient-sunset {
    background-image: linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%);
  }
  .bg-gradient-aurora {
    background-image: linear-gradient(135deg, #34d399 0%, #22d3ee 100%);
  }
  .text-gradient {
    background-image: var(--fv-gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  .text-gradient-primary {
    background-image: linear-gradient(135deg, #6d4af5 0%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  .text-gradient-accent {
    background-image: linear-gradient(135deg, #e879f9 0%, #6d4af5 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  .text-gradient-sunset {
    background-image: linear-gradient(135deg, #fb5b78 0%, #fbbf24 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  .text-gradient-aurora {
    background-image: linear-gradient(135deg, #34d399 0%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  [data-theme=light] [class*=text-gradient] {
    filter: brightness(0.5) saturate(1.4);
  }
  .glow-primary {
    box-shadow: 0 0 26px rgba(109, 74, 245, 0.55);
  }
  .glow-accent {
    box-shadow: 0 0 26px rgba(232, 121, 249, 0.55);
  }
  .glow-info {
    box-shadow: 0 0 26px rgba(34, 211, 238, 0.55);
  }
  .glow-success {
    box-shadow: 0 0 26px rgba(52, 211, 153, 0.5);
  }
  .glow-danger {
    box-shadow: 0 0 26px rgba(251, 91, 120, 0.5);
  }
  .glow-warning {
    box-shadow: 0 0 26px rgba(251, 191, 36, 0.5);
  }
  .glow {
    box-shadow: var(--fv-glow-primary);
  }
  .glow-none {
    box-shadow: none;
  }
  .text-glow {
    text-shadow: 0 0 18px rgba(109, 74, 245, 0.65);
  }
  .hover-lift {
    transition: transform 0.2s ease, box-shadow 0.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;
    }
  }
}
@layer utilities {
  .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: 0.75rem 0.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;
    }
  }
}
