@import url(https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@700;900&family=DM+Sans:wght@300;400;500;600&display=swap);
/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/* Common */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --ifm-color-scheme: light;

  /* Colors. */
  --ifm-dark-value: 10%;
  --ifm-darker-value: 15%;
  --ifm-darkest-value: 30%;
  --ifm-light-value: 15%;
  --ifm-lighter-value: 30%;
  --ifm-lightest-value: 50%;

  /*
  This seems like a lot, but we want to ensure enough contrast.
  Goal is to have a min score of 3 on https://www.myndex.com/APCA/fullmatrix
  For fontWeight 400 + score 3, the cell must show a value < 16px (fontsize we use in places like alerts)
  See also https://github.com/facebookincubator/infima/issues/55#issuecomment-884023075
   */
  --ifm-contrast-background-value: 90%;
  --ifm-contrast-foreground-value: 70%;
  /* Using slightly different values for dark mode */
  --ifm-contrast-background-dark-value: 70%;
  --ifm-contrast-foreground-dark-value: 90%;

  --ifm-color-primary: #3578e5;
  --ifm-color-secondary: #ebedf0;
  --ifm-color-success: #00a400;
  --ifm-color-info: #54c7ec;
  --ifm-color-warning: #ffba00;
  --ifm-color-danger: #fa383e;
    --ifm-color-primary-dark: rgb(48, 108, 206);
    --ifm-color-primary-darker: rgb(45, 102, 195);
    --ifm-color-primary-darkest: rgb(37, 84, 160);
    --ifm-color-primary-light: rgb(83, 140, 233);
    --ifm-color-primary-lighter: rgb(114, 161, 237);
    --ifm-color-primary-lightest: rgb(154, 188, 242);
    --ifm-color-primary-contrast-background: rgb(235, 242, 252);
    --ifm-color-primary-contrast-foreground: rgb(16, 36, 69);
    --ifm-color-secondary-dark: rgb(212, 213, 216);
    --ifm-color-secondary-darker: rgb(200, 201, 204);
    --ifm-color-secondary-darkest: rgb(164, 166, 168);
    --ifm-color-secondary-light: rgb(238, 240, 242);
    --ifm-color-secondary-lighter: rgb(241, 242, 245);
    --ifm-color-secondary-lightest: rgb(245, 246, 248);
    --ifm-color-secondary-contrast-background: rgb(253, 253, 254);
    --ifm-color-secondary-contrast-foreground: rgb(71, 71, 72);
    --ifm-color-success-dark: rgb(0, 148, 0);
    --ifm-color-success-darker: rgb(0, 139, 0);
    --ifm-color-success-darkest: rgb(0, 115, 0);
    --ifm-color-success-light: rgb(38, 178, 38);
    --ifm-color-success-lighter: rgb(77, 191, 77);
    --ifm-color-success-lightest: rgb(128, 210, 128);
    --ifm-color-success-contrast-background: rgb(230, 246, 230);
    --ifm-color-success-contrast-foreground: rgb(0, 49, 0);
    --ifm-color-info-dark: rgb(76, 179, 212);
    --ifm-color-info-darker: rgb(71, 169, 201);
    --ifm-color-info-darkest: rgb(59, 139, 165);
    --ifm-color-info-light: rgb(110, 207, 239);
    --ifm-color-info-lighter: rgb(135, 216, 242);
    --ifm-color-info-lightest: rgb(170, 227, 246);
    --ifm-color-info-contrast-background: rgb(238, 249, 253);
    --ifm-color-info-contrast-foreground: rgb(25, 60, 71);
    --ifm-color-warning-dark: rgb(230, 167, 0);
    --ifm-color-warning-darker: rgb(217, 158, 0);
    --ifm-color-warning-darkest: rgb(179, 130, 0);
    --ifm-color-warning-light: rgb(255, 196, 38);
    --ifm-color-warning-lighter: rgb(255, 207, 77);
    --ifm-color-warning-lightest: rgb(255, 221, 128);
    --ifm-color-warning-contrast-background: rgb(255, 248, 230);
    --ifm-color-warning-contrast-foreground: rgb(77, 56, 0);
    --ifm-color-danger-dark: rgb(225, 50, 56);
    --ifm-color-danger-darker: rgb(213, 48, 53);
    --ifm-color-danger-darkest: rgb(175, 39, 43);
    --ifm-color-danger-light: rgb(251, 86, 91);
    --ifm-color-danger-lighter: rgb(251, 116, 120);
    --ifm-color-danger-lightest: rgb(253, 156, 159);
    --ifm-color-danger-contrast-background: rgb(255, 235, 236);
    --ifm-color-danger-contrast-foreground: rgb(75, 17, 19);

  --ifm-color-white: #fff;
  --ifm-color-black: #000;

  --ifm-color-gray-0: var(--ifm-color-white);
  --ifm-color-gray-100: #f5f6f7;
  --ifm-color-gray-200: #ebedf0;
  --ifm-color-gray-300: #dadde1;
  --ifm-color-gray-400: #ccd0d5;
  --ifm-color-gray-500: #bec3c9;
  --ifm-color-gray-600: #8d949e;
  --ifm-color-gray-700: #606770;
  --ifm-color-gray-800: #444950;
  --ifm-color-gray-900: #1c1e21;
  --ifm-color-gray-1000: var(--ifm-color-black);

  --ifm-color-emphasis-0: var(--ifm-color-gray-0);
  --ifm-color-emphasis-100: var(--ifm-color-gray-100);
  --ifm-color-emphasis-200: var(--ifm-color-gray-200);
  --ifm-color-emphasis-300: var(--ifm-color-gray-300);
  --ifm-color-emphasis-400: var(--ifm-color-gray-400);
  --ifm-color-emphasis-500: var(--ifm-color-gray-500);
  --ifm-color-emphasis-600: var(--ifm-color-gray-600);
  --ifm-color-emphasis-700: var(--ifm-color-gray-700);
  --ifm-color-emphasis-800: var(--ifm-color-gray-800);
  --ifm-color-emphasis-900: var(--ifm-color-gray-900);
  --ifm-color-emphasis-1000: var(--ifm-color-gray-1000);

  /* Base. */
  --ifm-color-content: var(--ifm-color-emphasis-900);
  --ifm-color-content-inverse: var(--ifm-color-emphasis-0);
  --ifm-color-content-secondary: #525860;

  --ifm-background-color: transparent; /* Body's background. */
  --ifm-background-surface-color: var(--ifm-color-content-inverse);
  --ifm-global-border-width: 1px;
  --ifm-global-radius: 0.4rem;

  --ifm-hover-overlay: rgba(0, 0, 0, 0.05);

  /* Typography. */
  --ifm-font-color-base: var(--ifm-color-content);
  --ifm-font-color-base-inverse: var(--ifm-color-content-inverse);
  --ifm-font-color-secondary: var(--ifm-color-content-secondary);
  --ifm-font-family-base: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont,
    'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji', 'Segoe UI Symbol';
  --ifm-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
    'Liberation Mono', 'Courier New', monospace;
  --ifm-font-size-base: 100%;

  --ifm-font-weight-light: 300;
  --ifm-font-weight-normal: 400;
  --ifm-font-weight-semibold: 500;
  --ifm-font-weight-bold: 700;

  --ifm-font-weight-base: var(--ifm-font-weight-normal);
  --ifm-line-height-base: 1.65;

  /* Spacing. */
  --ifm-global-spacing: 1rem;
  --ifm-spacing-vertical: var(--ifm-global-spacing);
  --ifm-spacing-horizontal: var(--ifm-global-spacing);

  /* Transitions. */
  --ifm-transition-fast: 200ms;
  --ifm-transition-slow: 400ms;
  --ifm-transition-timing-default: cubic-bezier(0.08, 0.52, 0.52, 1);

  /* Shadows. */
  --ifm-global-shadow-lw: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
  --ifm-global-shadow-md: 0 5px 40px rgba(0, 0, 0, 0.2);
  --ifm-global-shadow-tl: 0 12px 28px 0 rgba(0, 0, 0, 0.2),
    0 2px 4px 0 rgba(0, 0, 0, 0.1);

  /* Z-index. */
  --ifm-z-index-dropdown: 100;
  --ifm-z-index-fixed: 200;
  --ifm-z-index-overlay: 400;
  --ifm-container-width: 1140px;
  --ifm-container-width-xl: 1320px;
  --ifm-code-background: rgb(246, 247, 248);
  --ifm-code-border-radius: var(--ifm-global-radius);
  --ifm-code-font-size: 90%;
  --ifm-code-padding-horizontal: 0.1rem;
  --ifm-code-padding-vertical: 0.1rem;

  --ifm-pre-background: var(--ifm-code-background);
  --ifm-pre-border-radius: var(--ifm-code-border-radius);
  --ifm-pre-color: inherit;
  --ifm-pre-line-height: 1.45;
  --ifm-pre-padding: 1rem;
  --ifm-heading-color: inherit;
  --ifm-heading-margin-top: 0;
  --ifm-heading-margin-bottom: var(--ifm-spacing-vertical);
  --ifm-heading-font-family: var(--ifm-font-family-base);
  --ifm-heading-font-weight: var(--ifm-font-weight-bold);
  --ifm-heading-line-height: 1.25;

  --ifm-h1-font-size: 2rem;
  --ifm-h2-font-size: 1.5rem;
  --ifm-h3-font-size: 1.25rem;
  --ifm-h4-font-size: 1rem;
  --ifm-h5-font-size: 0.875rem;
  --ifm-h6-font-size: 0.85rem;
  --ifm-image-alignment-padding: 1.25rem;
  /* Leading is the distance between two baselines */
  /* TODO: add appropriate mobile leading */
  --ifm-leading-desktop: 1.25;
  --ifm-leading: calc(var(--ifm-leading-desktop) * 1rem);
  --ifm-list-left-padding: 2rem;
  --ifm-list-margin: 1rem;
  --ifm-list-item-margin: 0.25rem;
  --ifm-list-paragraph-margin: 1rem;
  --ifm-table-cell-padding: 0.75rem;

  --ifm-table-background: transparent;
  --ifm-table-stripe-background: rgba(0, 0, 0, 0.03);

  --ifm-table-border-width: 1px;
  --ifm-table-border-color: var(--ifm-color-emphasis-300);

  --ifm-table-head-background: inherit;
  --ifm-table-head-color: inherit;
  --ifm-table-head-font-weight: var(--ifm-font-weight-bold);

  --ifm-table-cell-color: inherit;
  /* Links. */
  --ifm-link-color: var(--ifm-color-primary);
  --ifm-link-decoration: none;
  --ifm-link-hover-color: var(--ifm-link-color);
  --ifm-link-hover-decoration: underline;

  /* Paragraphs. */
  --ifm-paragraph-margin-bottom: var(--ifm-leading);

  /* Blockquotes. */
  --ifm-blockquote-font-size: var(--ifm-font-size-base);
  --ifm-blockquote-border-left-width: 2px;
  --ifm-blockquote-padding-horizontal: var(--ifm-spacing-horizontal);
  --ifm-blockquote-padding-vertical: 0;
  --ifm-blockquote-shadow: none;
  --ifm-blockquote-color: var(--ifm-color-emphasis-800);
  --ifm-blockquote-border-color: var(--ifm-color-emphasis-300);

  /* Horizontal Rules. */
  --ifm-hr-background-color: var(--ifm-color-emphasis-500);
  --ifm-hr-height: 1px;
  --ifm-hr-margin-vertical: 1.5rem;
  --ifm-scrollbar-size: 7px;
  --ifm-scrollbar-track-background-color: #f1f1f1;
  --ifm-scrollbar-thumb-background-color: #c0c0c0;
  --ifm-scrollbar-thumb-hover-background-color: #a7a7a7;
  --ifm-alert-background-color: inherit; /* Set a default which will be overridden later. */
  --ifm-alert-border-color: inherit; /* Set a default which will be overridden later. */
  --ifm-alert-border-radius: var(--ifm-global-radius);
  --ifm-alert-border-width: 0px; /* For users that want to easily add a border */
  --ifm-alert-border-left-width: 5px;
  --ifm-alert-color: var(--ifm-font-color-base);
  --ifm-alert-padding-horizontal: var(--ifm-spacing-horizontal);
  --ifm-alert-padding-vertical: var(--ifm-spacing-vertical);
  --ifm-alert-shadow: var(--ifm-global-shadow-lw);
  --ifm-avatar-intro-margin: 1rem;
  --ifm-avatar-intro-alignment: inherit;
  --ifm-avatar-photo-size: 3rem;
  --ifm-badge-background-color: inherit; /* Set a default which will be overridden later. */
  --ifm-badge-border-color: inherit; /* Set a default which will be overridden later. */
  --ifm-badge-border-radius: var(--ifm-global-radius);
  --ifm-badge-border-width: var(--ifm-global-border-width);
  --ifm-badge-color: var(--ifm-color-white);
  --ifm-badge-padding-horizontal: calc(var(--ifm-spacing-horizontal) * 0.5);
  --ifm-badge-padding-vertical: calc(var(--ifm-spacing-vertical) * 0.25);
  --ifm-breadcrumb-border-radius: 1.5rem;
  --ifm-breadcrumb-spacing: 0.5rem;
  --ifm-breadcrumb-color-active: var(--ifm-color-primary);
  --ifm-breadcrumb-item-background-active: var(--ifm-hover-overlay);
  --ifm-breadcrumb-padding-horizontal: 0.8rem;
  --ifm-breadcrumb-padding-vertical: 0.4rem;
  --ifm-breadcrumb-size-multiplier: 1;
  --ifm-breadcrumb-separator: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 256 256"><g><g><polygon points="79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>');
  --ifm-breadcrumb-separator-filter: none;
  --ifm-breadcrumb-separator-size: 0.5rem;
  --ifm-breadcrumb-separator-size-multiplier: 1.25;
  --ifm-button-background-color: inherit;
  --ifm-button-border-color: var(--ifm-button-background-color);
  --ifm-button-border-width: var(--ifm-global-border-width);
  --ifm-button-color: var(--ifm-font-color-base-inverse);
  --ifm-button-font-weight: var(--ifm-font-weight-bold);
  --ifm-button-padding-horizontal: 1.5rem;
  --ifm-button-padding-vertical: 0.375rem;
  --ifm-button-size-multiplier: 1;
  --ifm-button-transition-duration: var(--ifm-transition-fast);
  --ifm-button-border-radius: calc(
    var(--ifm-global-radius) * var(--ifm-button-size-multiplier)
  );
  --ifm-button-group-spacing: 2px;
  --ifm-card-background-color: var(--ifm-background-surface-color);
  --ifm-card-border-radius: calc(var(--ifm-global-radius) * 2);
  --ifm-card-horizontal-spacing: var(--ifm-global-spacing);
  --ifm-card-vertical-spacing: var(--ifm-global-spacing);
  --ifm-toc-border-color: var(--ifm-color-emphasis-300);
  --ifm-toc-link-color: var(--ifm-color-content-secondary);
  --ifm-toc-padding-vertical: 0.5rem;
  --ifm-toc-padding-horizontal: 0.5rem;
  --ifm-dropdown-background-color: var(--ifm-background-surface-color);
  --ifm-dropdown-font-weight: var(--ifm-font-weight-semibold);
  --ifm-dropdown-link-color: var(--ifm-font-color-base);
  --ifm-dropdown-hover-background-color: var(--ifm-hover-overlay);
  --ifm-footer-background-color: var(--ifm-color-emphasis-100);
  --ifm-footer-color: inherit;
  --ifm-footer-link-color: var(--ifm-color-emphasis-700);
  --ifm-footer-link-hover-color: var(--ifm-color-primary);
  --ifm-footer-link-horizontal-spacing: 0.5rem;
  --ifm-footer-padding-horizontal: calc(var(--ifm-spacing-horizontal) * 2);
  --ifm-footer-padding-vertical: calc(var(--ifm-spacing-vertical) * 2);
  --ifm-footer-title-color: inherit;
  --ifm-footer-logo-max-width: min(30rem, 90vw);
  --ifm-hero-background-color: var(--ifm-background-surface-color);
  --ifm-hero-text-color: var(--ifm-color-emphasis-800);
  --ifm-menu-color: var(--ifm-color-emphasis-700);
  --ifm-menu-color-active: var(--ifm-color-primary);
  --ifm-menu-color-background-active: var(--ifm-hover-overlay);
  --ifm-menu-color-background-hover: var(--ifm-hover-overlay);
  --ifm-menu-link-padding-horizontal: 0.75rem;
  --ifm-menu-link-padding-vertical: 0.375rem;
  --ifm-menu-link-sublist-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>');
  --ifm-menu-link-sublist-icon-filter: none;
  --ifm-navbar-background-color: var(--ifm-background-surface-color);
  --ifm-navbar-height: 3.75rem;
  --ifm-navbar-item-padding-horizontal: 0.75rem;
  --ifm-navbar-item-padding-vertical: 0.25rem;
  --ifm-navbar-link-color: var(--ifm-font-color-base);
  --ifm-navbar-link-hover-color: var(--ifm-color-primary);
  --ifm-navbar-link-active-color: var(--ifm-link-color);
  --ifm-navbar-padding-horizontal: var(--ifm-spacing-horizontal);
  --ifm-navbar-padding-vertical: calc(var(--ifm-spacing-vertical) * 0.5);
  --ifm-navbar-shadow: var(--ifm-global-shadow-lw);
  --ifm-navbar-search-input-background-color: var(--ifm-color-emphasis-200);
  --ifm-navbar-search-input-color: var(--ifm-color-emphasis-800);
  --ifm-navbar-search-input-placeholder-color: var(--ifm-color-emphasis-500);
  --ifm-navbar-search-input-icon: url('data:image/svg+xml;utf8,<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16px" width="16px"><path d="M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z" /></svg>');
  --ifm-navbar-sidebar-width: 83vw;
  --ifm-pagination-border-radius: var(--ifm-global-radius);
  --ifm-pagination-color-active: var(--ifm-color-primary);
  --ifm-pagination-font-size: 1rem;
  --ifm-pagination-item-active-background: var(--ifm-hover-overlay);
  --ifm-pagination-page-spacing: 0.2em;
  --ifm-pagination-padding-horizontal: calc(var(--ifm-spacing-horizontal) * 1);
  --ifm-pagination-padding-vertical: calc(var(--ifm-spacing-vertical) * 0.25);
  --ifm-pagination-nav-border-radius: var(--ifm-global-radius);
  --ifm-pagination-nav-color-hover: var(--ifm-color-primary);
  --ifm-pills-color-active: var(--ifm-color-primary);
  --ifm-pills-color-background-active: var(--ifm-hover-overlay);
  --ifm-pills-spacing: 0.125rem;
  --ifm-tabs-color: var(--ifm-font-color-secondary);
  --ifm-tabs-color-active: var(--ifm-color-primary);
  --ifm-tabs-color-active-border: var(--ifm-tabs-color-active);
  --ifm-tabs-padding-horizontal: 1rem;
  --ifm-tabs-padding-vertical: 1rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

* {
  box-sizing: border-box;
}

html {
  background-color: var(--ifm-background-color);
  color: var(--ifm-font-color-base);
  color-scheme: var(--ifm-color-scheme);
  font: var(--ifm-font-size-base) / var(--ifm-line-height-base)
    var(--ifm-font-family-base);
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  text-rendering: optimizelegibility;
  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

body {
  margin: 0;
  word-wrap: break-word;
}

iframe {
  border: 0;
  color-scheme: auto;
}

/* Layout */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.container {
  margin: 0 auto;
  max-width: var(--ifm-container-width);
  padding: 0 var(--ifm-spacing-horizontal);
  width: 100%;
}

.container--fluid {
    max-width: inherit;
  }

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 calc(var(--ifm-spacing-horizontal) * -1);
}

.row--no-gutters {
    margin-left: 0;
    margin-right: 0;
  }

.row--no-gutters > .col {
      padding-left: 0;
      padding-right: 0;
    }

.row--align-top {
    align-items: flex-start;
  }

.row--align-bottom {
    align-items: flex-end;
  }

.row--align-center {
    align-items: center;
  }

.row--align-stretch {
    align-items: stretch;
  }

.row--align-baseline {
    align-items: baseline;
  }

.col {
  --ifm-col-width: 100%;

  flex: 1 0;
  margin-left: 0;
  max-width: var(--ifm-col-width);
  padding: 0 var(--ifm-spacing-horizontal);
  width: 100%;
}

.col[class*='col--'] {
    flex: 0 0 var(--ifm-col-width);
  }

.col--1 {
      --ifm-col-width: calc(1 / 12 * 100%);
    }

.col--offset-1 {
      margin-left: calc(1 / 12 * 100%);
    }

.col--2 {
      --ifm-col-width: calc(2 / 12 * 100%);
    }

.col--offset-2 {
      margin-left: calc(2 / 12 * 100%);
    }

.col--3 {
      --ifm-col-width: calc(3 / 12 * 100%);
    }

.col--offset-3 {
      margin-left: calc(3 / 12 * 100%);
    }

.col--4 {
      --ifm-col-width: calc(4 / 12 * 100%);
    }

.col--offset-4 {
      margin-left: calc(4 / 12 * 100%);
    }

.col--5 {
      --ifm-col-width: calc(5 / 12 * 100%);
    }

.col--offset-5 {
      margin-left: calc(5 / 12 * 100%);
    }

.col--6 {
      --ifm-col-width: calc(6 / 12 * 100%);
    }

.col--offset-6 {
      margin-left: calc(6 / 12 * 100%);
    }

.col--7 {
      --ifm-col-width: calc(7 / 12 * 100%);
    }

.col--offset-7 {
      margin-left: calc(7 / 12 * 100%);
    }

.col--8 {
      --ifm-col-width: calc(8 / 12 * 100%);
    }

.col--offset-8 {
      margin-left: calc(8 / 12 * 100%);
    }

.col--9 {
      --ifm-col-width: calc(9 / 12 * 100%);
    }

.col--offset-9 {
      margin-left: calc(9 / 12 * 100%);
    }

.col--10 {
      --ifm-col-width: calc(10 / 12 * 100%);
    }

.col--offset-10 {
      margin-left: calc(10 / 12 * 100%);
    }

.col--11 {
      --ifm-col-width: calc(11 / 12 * 100%);
    }

.col--offset-11 {
      margin-left: calc(11 / 12 * 100%);
    }

.col--12 {
      --ifm-col-width: calc(12 / 12 * 100%);
    }

.col--offset-12 {
      margin-left: calc(12 / 12 * 100%);
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.margin--none {
      margin: 0 !important;
    }

.margin-top--none {
        margin-top: 0 !important;
      }

.margin-left--none {
        margin-left: 0 !important;
      }

.margin-bottom--none {
        margin-bottom: 0 !important;
      }

.margin-right--none {
        margin-right: 0 !important;
      }

.margin-vert--none {
      margin-bottom: 0 !important;
      margin-top: 0 !important;
    }

.margin-horiz--none {
      margin-left: 0 !important;
      margin-right: 0 !important;
    }

.margin--xs {
      margin: 0.25rem !important;
    }

.margin-top--xs {
        margin-top: 0.25rem !important;
      }

.margin-left--xs {
        margin-left: 0.25rem !important;
      }

.margin-bottom--xs {
        margin-bottom: 0.25rem !important;
      }

.margin-right--xs {
        margin-right: 0.25rem !important;
      }

.margin-vert--xs {
      margin-bottom: 0.25rem !important;
      margin-top: 0.25rem !important;
    }

.margin-horiz--xs {
      margin-left: 0.25rem !important;
      margin-right: 0.25rem !important;
    }

.margin--sm {
      margin: 0.5rem !important;
    }

.margin-top--sm {
        margin-top: 0.5rem !important;
      }

.margin-left--sm {
        margin-left: 0.5rem !important;
      }

.margin-bottom--sm {
        margin-bottom: 0.5rem !important;
      }

.margin-right--sm {
        margin-right: 0.5rem !important;
      }

.margin-vert--sm {
      margin-bottom: 0.5rem !important;
      margin-top: 0.5rem !important;
    }

.margin-horiz--sm {
      margin-left: 0.5rem !important;
      margin-right: 0.5rem !important;
    }

.margin--md {
      margin: 1rem !important;
    }

.margin-top--md {
        margin-top: 1rem !important;
      }

.margin-left--md {
        margin-left: 1rem !important;
      }

.margin-bottom--md {
        margin-bottom: 1rem !important;
      }

.margin-right--md {
        margin-right: 1rem !important;
      }

.margin-vert--md {
      margin-bottom: 1rem !important;
      margin-top: 1rem !important;
    }

.margin-horiz--md {
      margin-left: 1rem !important;
      margin-right: 1rem !important;
    }

.margin--lg {
      margin: 2rem !important;
    }

.margin-top--lg {
        margin-top: 2rem !important;
      }

.margin-left--lg {
        margin-left: 2rem !important;
      }

.margin-bottom--lg {
        margin-bottom: 2rem !important;
      }

.margin-right--lg {
        margin-right: 2rem !important;
      }

.margin-vert--lg {
      margin-bottom: 2rem !important;
      margin-top: 2rem !important;
    }

.margin-horiz--lg {
      margin-left: 2rem !important;
      margin-right: 2rem !important;
    }

.margin--xl {
      margin: 5rem !important;
    }

.margin-top--xl {
        margin-top: 5rem !important;
      }

.margin-left--xl {
        margin-left: 5rem !important;
      }

.margin-bottom--xl {
        margin-bottom: 5rem !important;
      }

.margin-right--xl {
        margin-right: 5rem !important;
      }

.margin-vert--xl {
      margin-bottom: 5rem !important;
      margin-top: 5rem !important;
    }

.margin-horiz--xl {
      margin-left: 5rem !important;
      margin-right: 5rem !important;
    }

.padding--none {
      padding: 0 !important;
    }

.padding-top--none {
        padding-top: 0 !important;
      }

.padding-left--none {
        padding-left: 0 !important;
      }

.padding-bottom--none {
        padding-bottom: 0 !important;
      }

.padding-right--none {
        padding-right: 0 !important;
      }

.padding-vert--none {
      padding-bottom: 0 !important;
      padding-top: 0 !important;
    }

.padding-horiz--none {
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

.padding--xs {
      padding: 0.25rem !important;
    }

.padding-top--xs {
        padding-top: 0.25rem !important;
      }

.padding-left--xs {
        padding-left: 0.25rem !important;
      }

.padding-bottom--xs {
        padding-bottom: 0.25rem !important;
      }

.padding-right--xs {
        padding-right: 0.25rem !important;
      }

.padding-vert--xs {
      padding-bottom: 0.25rem !important;
      padding-top: 0.25rem !important;
    }

.padding-horiz--xs {
      padding-left: 0.25rem !important;
      padding-right: 0.25rem !important;
    }

.padding--sm {
      padding: 0.5rem !important;
    }

.padding-top--sm {
        padding-top: 0.5rem !important;
      }

.padding-left--sm {
        padding-left: 0.5rem !important;
      }

.padding-bottom--sm {
        padding-bottom: 0.5rem !important;
      }

.padding-right--sm {
        padding-right: 0.5rem !important;
      }

.padding-vert--sm {
      padding-bottom: 0.5rem !important;
      padding-top: 0.5rem !important;
    }

.padding-horiz--sm {
      padding-left: 0.5rem !important;
      padding-right: 0.5rem !important;
    }

.padding--md {
      padding: 1rem !important;
    }

.padding-top--md {
        padding-top: 1rem !important;
      }

.padding-left--md {
        padding-left: 1rem !important;
      }

.padding-bottom--md {
        padding-bottom: 1rem !important;
      }

.padding-right--md {
        padding-right: 1rem !important;
      }

.padding-vert--md {
      padding-bottom: 1rem !important;
      padding-top: 1rem !important;
    }

.padding-horiz--md {
      padding-left: 1rem !important;
      padding-right: 1rem !important;
    }

.padding--lg {
      padding: 2rem !important;
    }

.padding-top--lg {
        padding-top: 2rem !important;
      }

.padding-left--lg {
        padding-left: 2rem !important;
      }

.padding-bottom--lg {
        padding-bottom: 2rem !important;
      }

.padding-right--lg {
        padding-right: 2rem !important;
      }

.padding-vert--lg {
      padding-bottom: 2rem !important;
      padding-top: 2rem !important;
    }

.padding-horiz--lg {
      padding-left: 2rem !important;
      padding-right: 2rem !important;
    }

.padding--xl {
      padding: 5rem !important;
    }

.padding-top--xl {
        padding-top: 5rem !important;
      }

.padding-left--xl {
        padding-left: 5rem !important;
      }

.padding-bottom--xl {
        padding-bottom: 5rem !important;
      }

.padding-right--xl {
        padding-right: 5rem !important;
      }

.padding-vert--xl {
      padding-bottom: 5rem !important;
      padding-top: 5rem !important;
    }

.padding-horiz--xl {
      padding-left: 5rem !important;
      padding-right: 5rem !important;
    }

/* Content */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

code {
  background-color: var(--ifm-code-background);
  border: 0.1rem solid rgba(0, 0, 0, 0.1);
  border-radius: var(--ifm-code-border-radius);
  font-family: var(--ifm-font-family-monospace);
  font-size: var(--ifm-code-font-size);
  padding: var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal);
  vertical-align: middle;
}

a code {
  color: inherit;
}

pre {
  background-color: var(--ifm-pre-background);
  border-radius: var(--ifm-pre-border-radius);
  color: var(--ifm-pre-color);
  font: var(--ifm-code-font-size) / var(--ifm-pre-line-height)
    var(--ifm-font-family-monospace);
  margin: 0 0 var(--ifm-spacing-vertical);
  overflow: auto;
  padding: var(--ifm-pre-padding);
}

pre code {
    background-color: transparent;
    border: none;
    font-size: 100%;
    line-height: inherit;
    padding: 0;
  }

kbd {
  background-color: var(--ifm-color-emphasis-0);
  border: 1px solid var(--ifm-color-emphasis-400);
  border-radius: 0.2rem;
  box-shadow: inset 0 -1px 0 var(--ifm-color-emphasis-400);
  color: var(--ifm-color-emphasis-800);
  font: 80% var(--ifm-font-family-monospace);
  padding: 0.15rem 0.3rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--ifm-heading-color);
  font-family: var(--ifm-heading-font-family);
  font-weight: var(--ifm-heading-font-weight);
  line-height: var(--ifm-heading-line-height);
  margin: var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0;
}

h1 {
    font-size: var(--ifm-h1-font-size);
  }

h2 {
    font-size: var(--ifm-h2-font-size);
  }

h3 {
    font-size: var(--ifm-h3-font-size);
  }

h4 {
    font-size: var(--ifm-h4-font-size);
  }

h5 {
    font-size: var(--ifm-h5-font-size);
  }

h6 {
    font-size: var(--ifm-h6-font-size);
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

img {
  max-width: 100%;
}

img[align='right'] {
  padding-left: var(--image-alignment-padding);
}

img[align='left'] {
  padding-right: var(--image-alignment-padding);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.markdown {
  --ifm-h1-vertical-rhythm-top: 3;
  --ifm-h2-vertical-rhythm-top: 2;
  --ifm-h3-vertical-rhythm-top: 1.5;
  --ifm-heading-vertical-rhythm-top: 1.25;

  --ifm-h1-vertical-rhythm-bottom: 1.25;
  --ifm-heading-vertical-rhythm-bottom: 1;
}

.markdown:before {
    content: '';
    display: table;
  }

.markdown:after {
    clear: both;
    content: '';
    display: table;
  }

.markdown > *:last-child {
    margin-bottom: 0 !important;
  }

.markdown h1:first-child {
    --ifm-h1-font-size: 3rem;

    margin-bottom: calc(
      var(--ifm-h1-vertical-rhythm-bottom) * var(--ifm-leading)
    );
  }

.markdown > h2 {
    --ifm-h2-font-size: 2rem;

    margin-bottom: calc(
      var(--ifm-heading-vertical-rhythm-bottom) * var(--ifm-leading)
    );
    margin-top: calc(var(--ifm-h2-vertical-rhythm-top) * var(--ifm-leading));
  }

.markdown > h3 {
    --ifm-h3-font-size: 1.5rem;

    margin-bottom: calc(
      var(--ifm-heading-vertical-rhythm-bottom) * var(--ifm-leading)
    );
    margin-top: calc(var(--ifm-h3-vertical-rhythm-top) * var(--ifm-leading));
  }

.markdown > h4,
  .markdown > h5,
  .markdown > h6 {
    margin-bottom: calc(
      var(--ifm-heading-vertical-rhythm-bottom) * var(--ifm-leading)
    );
    margin-top: calc(
      var(--ifm-heading-vertical-rhythm-top) * var(--ifm-leading)
    );
  }

/* Consistent spacing between content paragraphs. */

.markdown > pre,
  .markdown > ul,
  .markdown > p {
    margin-bottom: var(--ifm-leading);
  }

.markdown li {
    word-wrap: break-word;
  }

.markdown li > p {
      margin-top: var(--ifm-list-paragraph-margin);
    }

.markdown li + li {
      margin-top: var(--ifm-list-item-margin);
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/* Lists */

ul,
ol {
  margin: 0 0 var(--ifm-list-margin);
  padding-left: var(--ifm-list-left-padding);
}

ol ol,
ul ol {
  list-style-type: lower-roman;
}

ul ul,
ul ol,
ol ol,
ol ul {
  margin: 0;
}

ul ul ol,
ul ol ol,
ol ul ol,
ol ol ol {
  list-style-type: lower-alpha;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

table {
  border-collapse: collapse;
  display: block;
  margin-bottom: var(--ifm-spacing-vertical);
  overflow: auto;
}

table thead tr {
    border-bottom: 2px solid var(--ifm-table-border-color);
  }

table thead {
    background-color: var(--ifm-table-stripe-background);
  }

table tr {
    background-color: var(--ifm-table-background);
    border-top: var(--ifm-table-border-width) solid
      var(--ifm-table-border-color);
  }

table tr:nth-child(2n) {
    background-color: var(--ifm-table-stripe-background);
  }

table th,
  table td {
    border: var(--ifm-table-border-width) solid var(--ifm-table-border-color);
    padding: var(--ifm-table-cell-padding);
  }

table th {
    background-color: var(--ifm-table-head-background);
    color: var(--ifm-table-head-color);
    font-weight: var(--ifm-table-head-font-weight);
  }

table td {
    color: var(--ifm-table-cell-color);
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

strong {
  font-weight: var(--ifm-font-weight-bold);
}

/* Links */

a {
  color: var(--ifm-link-color);
  /* autoprefixer: ignore next */
  text-decoration: var(--ifm-link-decoration);
  transition: color var(--ifm-transition-fast) var(--ifm-transition-timing-default);
}

a:hover {
    color: var(--ifm-link-hover-color);
    /* autoprefixer: ignore next */
    text-decoration: var(--ifm-link-hover-decoration);
  }

a:not([href]) {
    -webkit-text-decoration: none;
    text-decoration: none;
  }

/* Paragraphs */

p {
  margin: 0 0 var(--ifm-paragraph-margin-bottom);
}

/* Blockquotes */

blockquote {
  border-left: var(--ifm-blockquote-border-left-width) solid
    var(--ifm-blockquote-border-color);
  box-shadow: var(--ifm-blockquote-shadow);
  color: var(--ifm-blockquote-color);
  font-size: var(--ifm-blockquote-font-size);
  margin: 0 0 var(--ifm-spacing-vertical);
  padding: var(--ifm-blockquote-padding-vertical)
    var(--ifm-blockquote-padding-horizontal);
}

blockquote > :first-child {
    margin-top: 0;
  }

blockquote > :last-child {
    margin-bottom: 0;
  }

/* Horizontal Rules */

hr {
  background-color: var(--ifm-hr-background-color);
  border: 0;
  height: var(--ifm-hr-height);
  margin: var(--ifm-hr-margin-vertical) 0;
}

/* Utilities */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.shadow--lw {
    box-shadow: var(--ifm-global-shadow-lw) !important;
  }

.shadow--md {
    box-shadow: var(--ifm-global-shadow-md) !important;
  }

.shadow--tl {
    box-shadow: var(--ifm-global-shadow-tl) !important;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.text--primary {
    color: var(--ifm-color-primary);
  }

.text--secondary {
    color: var(--ifm-color-secondary);
  }

.text--success {
    color: var(--ifm-color-success);
  }

.text--info {
    color: var(--ifm-color-info);
  }

.text--warning {
    color: var(--ifm-color-warning);
  }

.text--danger {
    color: var(--ifm-color-danger);
  }

.text--center {
    text-align: center;
  }

.text--left {
    text-align: left;
  }

.text--justify {
    text-align: justify;
  }

.text--right {
    text-align: right;
  }

.text--capitalize {
    text-transform: capitalize;
  }

.text--lowercase {
    text-transform: lowercase;
  }

.text--uppercase {
    text-transform: uppercase;
  }

.text--light {
    font-weight: var(--ifm-font-weight-light);
  }

.text--normal {
    font-weight: var(--ifm-font-weight-normal);
  }

.text--semibold {
    font-weight: var(--ifm-font-weight-semibold);
  }

.text--bold {
    font-weight: var(--ifm-font-weight-bold);
  }

.text--italic {
  font-style: italic;
}

.text--truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text--break {
  word-wrap: break-word !important;
  word-break: break-word !important;
}

.text--no-decoration,
  .text--no-decoration:hover {
    -webkit-text-decoration: none;
    text-decoration: none;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.clean-btn {
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  font-family: inherit;
  padding: 0;
}

.clean-list {
  list-style: none;
  padding-left: 0;
}

/* Components */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.alert--primary {
      --ifm-alert-background-color: var(
        --ifm-color-primary-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(53, 120, 229, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-primary-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-primary-dark);
    }

.alert--secondary {
      --ifm-alert-background-color: var(
        --ifm-color-secondary-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(235, 237, 240, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-secondary-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-secondary-dark);
    }

.alert--success {
      --ifm-alert-background-color: var(
        --ifm-color-success-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(0, 164, 0, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-success-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-success-dark);
    }

.alert--info {
      --ifm-alert-background-color: var(
        --ifm-color-info-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(84, 199, 236, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-info-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-info-dark);
    }

.alert--warning {
      --ifm-alert-background-color: var(
        --ifm-color-warning-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(255, 186, 0, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-warning-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-warning-dark);
    }

.alert--danger {
      --ifm-alert-background-color: var(
        --ifm-color-danger-contrast-background
      );
      --ifm-alert-background-color-highlight: rgba(250, 56, 62, 0.15);
      --ifm-alert-foreground-color: var(
        --ifm-color-danger-contrast-foreground
      );
      --ifm-alert-border-color: var(--ifm-color-danger-dark);
    }

.alert {

  --ifm-code-background: var(--ifm-alert-background-color-highlight);
  --ifm-link-color: var(--ifm-alert-foreground-color);
  --ifm-link-hover-color: var(--ifm-alert-foreground-color);
  --ifm-link-decoration: underline;
  --ifm-tabs-color: var(--ifm-alert-foreground-color);
  --ifm-tabs-color-active: var(--ifm-alert-foreground-color);
  --ifm-tabs-color-active-border: var(--ifm-alert-border-color);

  background-color: var(--ifm-alert-background-color);
  border: var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);
  border-left-width: var(--ifm-alert-border-left-width);
  border-radius: var(--ifm-alert-border-radius);
  box-shadow: var(--ifm-alert-shadow);
  color: var(--ifm-alert-foreground-color);
  padding: var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal);
}

.alert__heading {
    align-items: center;
    display: flex;
    font: bold var(--ifm-h5-font-size) / var(--ifm-heading-line-height)
      var(--ifm-heading-font-family);
    margin-bottom: 0.5rem;
    text-transform: uppercase;
  }

.alert__icon {
    display: inline-flex;
    margin-right: 0.4em;
  }

.alert__icon svg {
      fill: var(--ifm-alert-foreground-color);
      stroke: var(--ifm-alert-foreground-color);
      stroke-width: 0;
    }

.alert .close {
    color: var(--ifm-alert-foreground-color);
    margin: calc(var(--ifm-alert-padding-vertical) * -1)
      calc(var(--ifm-alert-padding-horizontal) * -1) 0 0;

    opacity: 0.75;
  }

.alert .close:hover,
    .alert .close:focus {
      opacity: 1;
    }

.alert a {
    text-decoration-color: var(--ifm-alert-border-color);
  }

.alert a:hover {
      text-decoration-thickness: 2px;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.avatar {
  column-gap: var(--ifm-avatar-intro-margin);
  display: flex;
}

.avatar__photo {
    border-radius: 50%;
    display: block;
    height: var(--ifm-avatar-photo-size);
    overflow: hidden;
    width: var(--ifm-avatar-photo-size);
  }

.avatar__photo--sm {
      --ifm-avatar-photo-size: 2rem;
    }

.avatar__photo--lg {
      --ifm-avatar-photo-size: 4rem;
    }

.avatar__photo--xl {
      --ifm-avatar-photo-size: 6rem;
    }

.avatar__intro {
    display: flex;
    flex: 1 1;
    flex-direction: column;
    justify-content: center;
    text-align: var(--ifm-avatar-intro-alignment);
  }

.avatar__name {
    font: bold var(--ifm-h4-font-size) / var(--ifm-heading-line-height)
      var(--ifm-font-family-base);
  }

.avatar__subtitle {
    margin-top: 0.25rem;
  }

.avatar--vertical {
    --ifm-avatar-intro-alignment: center;
    --ifm-avatar-intro-margin: 0.5rem;

    align-items: center;
    flex-direction: column;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.badge {
  background-color: var(--ifm-badge-background-color);
  border: var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);
  border-radius: var(--ifm-badge-border-radius);
  color: var(--ifm-badge-color);
  display: inline-block;
  font-size: 75%;
  font-weight: var(--ifm-font-weight-bold);
  line-height: 1;
  padding: var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal);
}

.badge--primary {
      --ifm-badge-background-color: var(--ifm-color-primary);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    }

.badge--secondary {
      --ifm-badge-background-color: var(--ifm-color-secondary);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    color: var(--ifm-color-black);
    }

.badge--success {
      --ifm-badge-background-color: var(--ifm-color-success);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    }

.badge--info {
      --ifm-badge-background-color: var(--ifm-color-info);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    }

.badge--warning {
      --ifm-badge-background-color: var(--ifm-color-warning);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    }

.badge--danger {
      --ifm-badge-background-color: var(--ifm-color-danger);
      --ifm-badge-border-color: var(--ifm-badge-background-color);
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.breadcrumbs {
  margin-bottom: 0;
  padding-left: 0;
}

.breadcrumbs__item {
    display: inline-block;
  }

.breadcrumbs__item:not(:last-child):after {
      background: var(--ifm-breadcrumb-separator) center;
      content: ' ';
      display: inline-block;
      filter: var(--ifm-breadcrumb-separator-filter);
      height: calc(
        var(--ifm-breadcrumb-separator-size) *
          var(--ifm-breadcrumb-size-multiplier) *
          var(--ifm-breadcrumb-separator-size-multiplier)
      );
      margin: 0 var(--ifm-breadcrumb-spacing);
      opacity: 0.5;
      width: calc(
        var(--ifm-breadcrumb-separator-size) *
          var(--ifm-breadcrumb-size-multiplier) *
          var(--ifm-breadcrumb-separator-size-multiplier)
      );
      /*rtl:raw:
      transform: rotate(180deg);
      */
    }

.breadcrumbs__item--active .breadcrumbs__link {
        background: var(--ifm-breadcrumb-item-background-active);
        color: var(--ifm-breadcrumb-color-active);
      }

.breadcrumbs__link {
    border-radius: var(--ifm-breadcrumb-border-radius);
    color: var(--ifm-font-color-base);
    display: inline-block;
    font-size: calc(1rem * var(--ifm-breadcrumb-size-multiplier));
    padding: calc(
        var(--ifm-breadcrumb-padding-vertical) *
          var(--ifm-breadcrumb-size-multiplier)
      )
      calc(
        var(--ifm-breadcrumb-padding-horizontal) *
          var(--ifm-breadcrumb-size-multiplier)
      );
    transition-property: background, color;
    transition-duration: var(--ifm-transition-fast);
    transition-timing-function: var(--ifm-transition-timing-default);
  }

.breadcrumbs__link:link:hover, .breadcrumbs__link:visited:hover, area[href].breadcrumbs__link:hover {
      background: var(--ifm-breadcrumb-item-background-active);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.breadcrumbs__link:any-link:hover {
      background: var(--ifm-breadcrumb-item-background-active);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.breadcrumbs--sm {
    --ifm-breadcrumb-size-multiplier: 0.8;
  }

.breadcrumbs--lg {
    --ifm-breadcrumb-size-multiplier: 1.2;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.button {
  background-color: var(--ifm-button-background-color);
  border: var(--ifm-button-border-width) solid var(--ifm-button-border-color);
  border-radius: var(--ifm-button-border-radius);
  color: var(--ifm-button-color);
  cursor: pointer;
  display: inline-block;
  font-size: calc(0.875rem * var(--ifm-button-size-multiplier));
  font-weight: var(--ifm-button-font-weight);
  line-height: 1.5;
  padding: calc(
      var(--ifm-button-padding-vertical) * var(--ifm-button-size-multiplier)
    )
    calc(
      var(--ifm-button-padding-horizontal) * var(--ifm-button-size-multiplier)
    );
  text-align: center;
  -webkit-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  transition-property: color, background, border-color;
  transition-duration: var(--ifm-button-transition-duration);
  transition-timing-function: var(--ifm-transition-timing-default);
}

.button:hover {
    color: var(--ifm-button-color); /* Override for button links. */
    -webkit-text-decoration: none;
    text-decoration: none;
  }

.button--outline {
    --ifm-button-background-color: transparent;
    --ifm-button-color: var(--ifm-button-border-color);
  }

.button--outline:hover {
      --ifm-button-background-color: var(--ifm-button-border-color);
    }

.button--outline:hover,
    .button--outline:active,
    .button--outline.button--active {
      --ifm-button-color: var(--ifm-font-color-base-inverse);
    }

.button--link {
    --ifm-button-background-color: transparent;
    --ifm-button-border-color: transparent;

    color: var(--ifm-link-color);
    /* autoprefixer: ignore next */
    text-decoration: var(--ifm-link-decoration);
  }

.button--link:hover,
    .button--link:active,
    .button--link.button--active {
      color: var(--ifm-link-hover-color);
      /* autoprefixer: ignore next */
      text-decoration: var(--ifm-link-hover-decoration);
    }

.button.disabled,
  .button:disabled,
  .button[disabled] {
    opacity: 0.65;
    pointer-events: none;
  }

.button--sm {
    --ifm-button-size-multiplier: 0.8;
  }

.button--lg {
    --ifm-button-size-multiplier: 1.35;
  }

.button--block {
    display: block;
    width: 100%;
  }

.button.button--secondary {
    color: var(--ifm-color-gray-900);
  }

.button.button--secondary.button--outline:not(.button--active):not(:hover) {
      color: var(--ifm-font-color-base);
    }

:where(.button--primary) {
      --ifm-button-background-color: var(--ifm-color-primary);
      --ifm-button-border-color: var(--ifm-color-primary);
    }

:where(.button--primary):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-primary-dark);
        --ifm-button-border-color: var(--ifm-color-primary-dark);
      }

.button--primary:active,
      .button--primary.button--active {
        --ifm-button-background-color: var(--ifm-color-primary-darker);
        --ifm-button-border-color: var(--ifm-color-primary-darker);
      }

:where(.button--secondary) {
      --ifm-button-background-color: var(--ifm-color-secondary);
      --ifm-button-border-color: var(--ifm-color-secondary);
    }

:where(.button--secondary):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-secondary-dark);
        --ifm-button-border-color: var(--ifm-color-secondary-dark);
      }

.button--secondary:active,
      .button--secondary.button--active {
        --ifm-button-background-color: var(--ifm-color-secondary-darker);
        --ifm-button-border-color: var(--ifm-color-secondary-darker);
      }

:where(.button--success) {
      --ifm-button-background-color: var(--ifm-color-success);
      --ifm-button-border-color: var(--ifm-color-success);
    }

:where(.button--success):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-success-dark);
        --ifm-button-border-color: var(--ifm-color-success-dark);
      }

.button--success:active,
      .button--success.button--active {
        --ifm-button-background-color: var(--ifm-color-success-darker);
        --ifm-button-border-color: var(--ifm-color-success-darker);
      }

:where(.button--info) {
      --ifm-button-background-color: var(--ifm-color-info);
      --ifm-button-border-color: var(--ifm-color-info);
    }

:where(.button--info):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-info-dark);
        --ifm-button-border-color: var(--ifm-color-info-dark);
      }

.button--info:active,
      .button--info.button--active {
        --ifm-button-background-color: var(--ifm-color-info-darker);
        --ifm-button-border-color: var(--ifm-color-info-darker);
      }

:where(.button--warning) {
      --ifm-button-background-color: var(--ifm-color-warning);
      --ifm-button-border-color: var(--ifm-color-warning);
    }

:where(.button--warning):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-warning-dark);
        --ifm-button-border-color: var(--ifm-color-warning-dark);
      }

.button--warning:active,
      .button--warning.button--active {
        --ifm-button-background-color: var(--ifm-color-warning-darker);
        --ifm-button-border-color: var(--ifm-color-warning-darker);
      }

:where(.button--danger) {
      --ifm-button-background-color: var(--ifm-color-danger);
      --ifm-button-border-color: var(--ifm-color-danger);
    }

:where(.button--danger):not(.button--outline):hover {
        --ifm-button-background-color: var(--ifm-color-danger-dark);
        --ifm-button-border-color: var(--ifm-color-danger-dark);
      }

.button--danger:active,
      .button--danger.button--active {
        --ifm-button-background-color: var(--ifm-color-danger-darker);
        --ifm-button-border-color: var(--ifm-color-danger-darker);
      }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.button-group {
  display: inline-flex;
  gap: var(--ifm-button-group-spacing);
}

.button-group > .button:not(:first-child) {
      border-bottom-left-radius: 0;
      border-top-left-radius: 0;
    }

.button-group > .button:not(:last-child) {
      border-bottom-right-radius: 0;
      border-top-right-radius: 0;
    }

.button-group--block {
    display: flex;
    justify-content: stretch;
  }

.button-group--block > .button {
      flex-grow: 1;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.card {
  background-color: var(--ifm-card-background-color);
  border-radius: var(--ifm-card-border-radius);
  box-shadow: var(--ifm-global-shadow-lw);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Because of border-radius. */

.card--full-height {
    height: 100%;
  }

.card__image {
    padding-top: var(--ifm-card-vertical-spacing);
  }

.card__image:first-child {
      padding-top: 0;
    }

.card__header,
  .card__body,
  .card__footer {
    padding: var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing);
  }

.card__header:not(:last-child), .card__body:not(:last-child), .card__footer:not(:last-child) {
      padding-bottom: 0;
    }

.card__header > :last-child, .card__body > :last-child, .card__footer > :last-child {
      margin-bottom: 0;
    }

.card__footer {
    margin-top: auto; /* Pushes the footer to the bottom of the card. */
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.table-of-contents {
  font-size: 0.8rem;
  margin-bottom: 0;
  padding: var(--ifm-toc-padding-vertical) 0;
}

.table-of-contents,
  .table-of-contents ul {
    list-style: none;
    padding-left: var(--ifm-toc-padding-horizontal);
  }

.table-of-contents li {
    margin: var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal);
  }

.table-of-contents__left-border {
    border-left: 1px solid var(--ifm-toc-border-color);
  }

.table-of-contents__link {
    color: var(--ifm-toc-link-color);
    display: block;
  }

.table-of-contents__link:hover,
    .table-of-contents__link:hover code,
    .table-of-contents__link--active,
    .table-of-contents__link--active code {
      color: var(--ifm-color-primary);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.close {
  color: var(--ifm-color-black);
  float: right;
  font-size: 1.5rem;
  font-weight: var(--ifm-font-weight-bold);
  line-height: 1;
  opacity: 0.5;
  padding: 1rem;
  transition: opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default);
}

.close:hover {
    opacity: 0.7;
  }

.close:focus {
    opacity: 0.8;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.dropdown {
  display: inline-flex;
  font-weight: var(--ifm-dropdown-font-weight);
  position: relative;
  vertical-align: top;
}

.dropdown--hoverable:hover .dropdown__menu, .dropdown--show .dropdown__menu {
      opacity: 1;
      pointer-events: all;
      transform: translateY(-1px);
      visibility: visible;
    }

.dropdown--right .dropdown__menu {
      left: inherit;
      right: 0;
    }

.dropdown--nocaret .navbar__link:after {
    content: none !important;
  }

.dropdown__menu {
    background-color: var(--ifm-dropdown-background-color);
    border-radius: var(--ifm-global-radius);
    box-shadow: var(--ifm-global-shadow-md);
    left: 0;
    list-style: none;
    max-height: 80vh;
    min-width: 10rem;
    opacity: 0;
    overflow-y: auto;
    padding: 0.5rem;
    pointer-events: none;
    position: absolute;
    top: calc(100% - var(--ifm-navbar-item-padding-vertical) + 0.3rem);
    transform: translateY(-0.625rem);
    visibility: hidden;
    z-index: var(--ifm-z-index-dropdown);
    transition-property: opacity, transform, visibility;
    transition-duration: var(--ifm-transition-fast);
    transition-timing-function: var(--ifm-transition-timing-default);
  }

.dropdown__link {
    border-radius: 0.25rem;
    color: var(--ifm-dropdown-link-color);
    display: block;
    font-size: 0.875rem;
    margin-top: 0.2rem;
    padding: 0.25rem 0.5rem;
    white-space: nowrap;
  }

.dropdown__link:hover,
    .dropdown__link--active {
      background-color: var(--ifm-dropdown-hover-background-color);
      color: var(--ifm-dropdown-link-color);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.dropdown__link--active,
    .dropdown__link--active:hover {
      --ifm-dropdown-link-color: var(--ifm-link-color);
    }

.dropdown > .navbar__link:after {
    border-color: currentColor transparent;
    border-style: solid;
    border-width: 0.4em 0.4em 0;
    content: '';
    display: inline-block;
    margin-left: 0.3em;
    position: relative;
    top: 2px;
    transform: translateY(-50%);
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.footer {
  background-color: var(--ifm-footer-background-color);
  color: var(--ifm-footer-color);
  padding: var(--ifm-footer-padding-vertical)
    var(--ifm-footer-padding-horizontal);
}

.footer--dark {
    --ifm-footer-background-color: #303846;
    --ifm-footer-color: var(--ifm-footer-link-color);
    --ifm-footer-link-color: var(--ifm-color-secondary);
    --ifm-footer-title-color: var(--ifm-color-white);
  }

.footer__links {
    margin-bottom: 1rem;
  }

.footer__link-item {
    color: var(--ifm-footer-link-color);
    line-height: 2;
  }

.footer__link-item:hover {
      color: var(--ifm-footer-link-hover-color);
    }

.footer__link-separator {
    margin: 0 var(--ifm-footer-link-horizontal-spacing);
  }

.footer__logo {
    margin-top: 1rem;
    max-width: var(--ifm-footer-logo-max-width);
  }

.footer__title {
    color: var(--ifm-footer-title-color);
    font: bold var(--ifm-h4-font-size) / var(--ifm-heading-line-height)
      var(--ifm-font-family-base);
    margin-bottom: var(--ifm-heading-margin-bottom);
  }

.footer__item {
    margin-top: 0;
  }

.footer__items {
    margin-bottom: 0;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[type='checkbox'] {
  padding: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.hero {
  align-items: center;
  background-color: var(--ifm-hero-background-color);
  color: var(--ifm-hero-text-color);
  display: flex;
  padding: 4rem 2rem;
}

.hero--primary {
    --ifm-hero-background-color: var(--ifm-color-primary);
    --ifm-hero-text-color: var(--ifm-font-color-base-inverse);
  }

.hero--dark {
    --ifm-hero-background-color: #303846;
    --ifm-hero-text-color: var(--ifm-color-white);
  }

.hero__title {
    font-size: 3rem;
  }

.hero__subtitle {
    font-size: 1.5rem;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.menu {
  font-weight: var(--ifm-font-weight-semibold);
  overflow-x: hidden;
}

.menu__list {
    list-style: none;
    margin: 0;
    padding-left: 0;
  }

/* Non-top level menus */

.menu__list .menu__list {
      flex: 0 0 100%;
      margin-top: 0.25rem;
      padding-left: var(--ifm-menu-link-padding-horizontal);
    }

.menu__list-item:not(:first-child) {
      margin-top: 0.25rem;
    }

.menu__list-item--collapsed .menu__list {
        height: 0;
        overflow: hidden;
      }

.menu__list-item--collapsed .menu__link--sublist:after,
      .menu__list-item--collapsed .menu__caret:before {
        transform: rotateZ(90deg);
      }

.menu__list-item-collapsible {
      flex-wrap: wrap;
      position: relative;
      border-radius: 0.25rem;
      display: flex;
      transition: background var(--ifm-transition-fast) var(--ifm-transition-timing-default);
    }

.menu__list-item-collapsible:hover {
    background: var(--ifm-menu-color-background-hover);
  }

.menu__list-item-collapsible--active {
        background: var(--ifm-menu-color-background-hover);
      }

.menu__list-item-collapsible .menu__link:hover,
        .menu__list-item-collapsible .menu__link--active {
          background: none !important;
        }

.menu__link,
  .menu__caret {
    align-items: center;
    border-radius: 0.25rem;
    display: flex;
    transition: background var(--ifm-transition-fast) var(--ifm-transition-timing-default);
  }

.menu__link:hover, .menu__caret:hover {
    background: var(--ifm-menu-color-background-hover);
  }

.menu__link {
    color: var(--ifm-menu-color);
    flex: 1;
    line-height: 1.25;
    padding: var(--ifm-menu-link-padding-vertical)
      var(--ifm-menu-link-padding-horizontal);
  }

.menu__link:hover {
      -webkit-text-decoration: none;
      text-decoration: none;
      color: var(--ifm-menu-color);
      transition: color var(--ifm-transition-fast) var(--ifm-transition-timing-default);
    }

.menu__link--sublist-caret:after {
      content: '';
      margin-left: auto;
      min-width: 1.25rem;
      background: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem;
      filter: var(--ifm-menu-link-sublist-icon-filter);
      height: 1.25rem;
      transform: rotate(180deg);
      width: 1.25rem;
      transition: transform var(--ifm-transition-fast) linear;
    }

.menu__link--active {
      color: var(--ifm-menu-color-active);
    }

.menu__link--active:hover {
        color: var(--ifm-menu-color-active);
      }

.menu__link--active:not(.menu__link--sublist) {
        background-color: var(--ifm-menu-color-background-active);
      }

.menu__caret {
    padding: var(--ifm-menu-link-padding-vertical)
      var(--ifm-menu-link-padding-horizontal);
  }

.menu__caret:before {
      content: '';
      background: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem;
      filter: var(--ifm-menu-link-sublist-icon-filter);
      height: 1.25rem;
      transform: rotate(180deg);
      width: 1.25rem;
      transition: transform var(--ifm-transition-fast) linear;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

html[data-theme='dark'],
.navbar--dark {
  --ifm-menu-link-sublist-icon-filter: invert(100%) sepia(94%) saturate(17%)
    hue-rotate(223deg) brightness(104%) contrast(98%);
}

.navbar {
  background-color: var(--ifm-navbar-background-color);
  box-shadow: var(--ifm-navbar-shadow);
  display: flex;
  height: var(--ifm-navbar-height);
  padding: var(--ifm-navbar-padding-vertical)
    var(--ifm-navbar-padding-horizontal);
}

.navbar > .container,
  .navbar > .container-fluid {
    display: flex;
  }

.navbar--fixed-top {
    position: sticky;
    top: 0;
    z-index: var(--ifm-z-index-fixed);
  }

.navbar__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
  }

.navbar__brand {
    align-items: center;
    color: var(--ifm-navbar-link-color);
    display: flex;
    margin-right: 1rem;
    min-width: 0;
  }

.navbar__brand:hover {
      color: var(--ifm-navbar-link-hover-color);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.navbar__title {
    flex: 1 1 auto;
  }

.navbar__toggle {
    display: none;
    margin-right: 0.5rem;
  }

.navbar__logo {
    flex: 0 0 auto;
    height: 2rem;
    margin-right: 0.5rem;
  }

.navbar__logo img {
      height: 100%;
    }

.navbar__items {
    align-items: center;
    display: flex;
    flex: 1;
    min-width: 0;
  }

.navbar__items--center {
      flex: 0 0 auto;
    }

.navbar__items--center .navbar__brand {
        margin: 0;
      }

.navbar__items--center + .navbar__items--right {
        flex: 1;
      }

.navbar__items--right {
      flex: 0 0 auto;
      justify-content: flex-end;
    }

.navbar__items--right > :last-child {
        padding-right: 0;
      }

.navbar__item {
    display: inline-block;
    padding: var(--ifm-navbar-item-padding-vertical)
      var(--ifm-navbar-item-padding-horizontal);
  }

.navbar__item.dropdown .navbar__link:not([href]) {
        pointer-events: none;
      }

.navbar__link {
    color: var(--ifm-navbar-link-color);
    font-weight: var(--ifm-font-weight-semibold);
  }

.navbar__link:hover,
    .navbar__link--active {
      color: var(--ifm-navbar-link-hover-color);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.navbar--dark,
  .navbar--primary {
    --ifm-menu-color: var(--ifm-color-gray-300);
    --ifm-navbar-link-color: var(--ifm-color-gray-100);
    --ifm-navbar-search-input-background-color: rgba(255, 255, 255, 0.1);
    --ifm-navbar-search-input-placeholder-color: rgba(255, 255, 255, 0.5);

    color: var(--ifm-color-white);
  }

.navbar--dark {
    --ifm-navbar-background-color: #242526;
    --ifm-navbar-link-hover-color: var(--ifm-color-primary);
    --ifm-menu-color-background-active: rgba(255, 255, 255, 0.05);
    --ifm-navbar-search-input-color: var(--ifm-color-white);
  }

.navbar--primary {
    --ifm-navbar-background-color: var(--ifm-color-primary);
    --ifm-navbar-link-hover-color: var(--ifm-color-white);
    --ifm-menu-color-active: var(--ifm-color-white);
    --ifm-navbar-search-input-color: var(--ifm-color-emphasis-500);
  }

.navbar__search-input {
      appearance: none; /* Algolia will add type="search" to the input in Safari and Safari's styling will override the styling here. */
      background: var(--ifm-navbar-search-input-background-color)
        var(--ifm-navbar-search-input-icon) no-repeat 0.75rem center / 1rem 1rem;
      border: none;
      border-radius: 2rem;
      color: var(--ifm-navbar-search-input-color);
      cursor: text;
      display: inline-block;
      font-size: 1rem;
      height: 2rem;
      padding: 0 0.5rem 0 2.25rem;
      width: 12.5rem;
    }

.navbar__search-input::placeholder {
        color: var(--ifm-navbar-search-input-placeholder-color);
      }

.navbar-sidebar {
    background-color: var(--ifm-navbar-background-color);
    bottom: 0;
    box-shadow: var(--ifm-global-shadow-md);
    left: 0;
    opacity: 0;
    overflow-x: hidden;
    position: fixed;
    top: 0;
    transform: translate3d(-100%, 0, 0);
    visibility: hidden;
    width: var(--ifm-navbar-sidebar-width);
    transition-property: opacity, visibility, transform;
    transition-duration: var(--ifm-transition-fast);
    transition-timing-function: ease-in-out;
  }

.navbar-sidebar--show .navbar-sidebar,
      .navbar-sidebar--show .navbar-sidebar__backdrop {
        opacity: 1;
        visibility: visible;
      }

.navbar-sidebar--show .navbar-sidebar {
        transform: translate3d(0, 0, 0);
      }

.navbar-sidebar__backdrop {
      background-color: rgba(0, 0, 0, 0.6);
      bottom: 0;
      left: 0;
      opacity: 0;
      position: fixed;
      right: 0;
      top: 0;
      visibility: hidden;
      transition-property: opacity, visibility;
      transition-duration: var(--ifm-transition-fast);
      transition-timing-function: ease-in-out;
    }

.navbar-sidebar__brand {
      align-items: center;
      box-shadow: var(--ifm-navbar-shadow);
      display: flex;
      flex: 1;
      height: var(--ifm-navbar-height);
      padding: var(--ifm-navbar-padding-vertical)
        var(--ifm-navbar-padding-horizontal);
    }

.navbar-sidebar__items {
      display: flex;
      height: calc(100% - var(--ifm-navbar-height));
      transform: translateZ(0);
      transition: transform var(--ifm-transition-fast) ease-in-out;
    }

.navbar-sidebar__items--show-secondary {
        transform: translate3d(
          calc((var(--ifm-navbar-sidebar-width)) * -1),
          0,
          0
        );
      }

.navbar-sidebar__item {
      flex-shrink: 0;
      padding: 0.5rem;
      width: calc(var(--ifm-navbar-sidebar-width));
    }

.navbar-sidebar__back {
      background: var(--ifm-menu-color-background-active);
      font-size: 15px;
      font-weight: var(--ifm-button-font-weight);
      margin: 0 0 0.2rem -0.5rem;
      padding: 0.6rem 1.5rem;
      position: relative;
      text-align: left;
      top: -0.5rem;
      width: calc(100% + 1rem);
    }

.navbar-sidebar__close {
      display: flex;
      margin-left: auto;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.pagination {
  column-gap: var(--ifm-pagination-page-spacing);
  display: flex;
  font-size: var(--ifm-pagination-font-size);
  padding-left: 0;
}

.pagination--sm {
    --ifm-pagination-font-size: 0.8rem;
    --ifm-pagination-padding-horizontal: 0.8rem;
    --ifm-pagination-padding-vertical: 0.2rem;
  }

.pagination--lg {
    --ifm-pagination-font-size: 1.2rem;
    --ifm-pagination-padding-horizontal: 1.2rem;
    --ifm-pagination-padding-vertical: 0.3rem;
  }

.pagination__item {
    display: inline-flex;
  }

.pagination__item > span {
      padding: var(--ifm-pagination-padding-vertical);
    }

.pagination__item--active .pagination__link {
        background: var(--ifm-pagination-item-active-background);
        color: var(--ifm-pagination-color-active);
      }

.pagination__item:not(.pagination__item--active):hover .pagination__link {
        background: var(--ifm-pagination-item-active-background);
      }

.pagination__item--disabled,
    .pagination__item[disabled] {
      opacity: 0.25;
      pointer-events: none;
    }

.pagination__link {
    border-radius: var(--ifm-pagination-border-radius);
    color: var(--ifm-font-color-base);
    display: inline-block;
    padding: var(--ifm-pagination-padding-vertical)
      var(--ifm-pagination-padding-horizontal);
    transition: background var(--ifm-transition-fast) var(--ifm-transition-timing-default);
  }

.pagination__link:hover {
      -webkit-text-decoration: none;
      text-decoration: none;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.pagination-nav {
  display: grid;
  grid-gap: var(--ifm-spacing-horizontal);
  gap: var(--ifm-spacing-horizontal);
  grid-template-columns: repeat(2, 1fr);
}

.pagination-nav__link {
    border: 1px solid var(--ifm-color-emphasis-300);
    border-radius: var(--ifm-pagination-nav-border-radius);
    display: block;
    height: 100%;
    line-height: var(--ifm-heading-line-height);
    padding: var(--ifm-global-spacing);
    transition: border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default);
  }

.pagination-nav__link:hover {
      border-color: var(--ifm-pagination-nav-color-hover);
      -webkit-text-decoration: none;
      text-decoration: none;
    }

.pagination-nav__link--next {
      grid-column: 2/3;
      text-align: right;
    }

.pagination-nav__label {
    font-size: var(--ifm-h4-font-size);
    font-weight: var(--ifm-heading-font-weight);
    word-break: break-word;
  }

.pagination-nav__link--prev .pagination-nav__label::before {
      content: '« ';
    }

.pagination-nav__link--next .pagination-nav__label::after {
      content: ' »';
    }

.pagination-nav__sublabel {
    color: var(--ifm-color-content-secondary);
    font-size: var(--ifm-h5-font-size);
    font-weight: var(--ifm-font-weight-semibold);
    margin-bottom: 0.25rem;
  }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.pills {
  display: flex;
  gap: var(--ifm-pills-spacing);
  padding-left: 0;
}

.pills__item {
    border-radius: 0.5rem;
    cursor: pointer;
    display: inline-block;
    font-weight: var(--ifm-font-weight-bold);
    padding: 0.25rem 1rem;
    transition: background var(--ifm-transition-fast) var(--ifm-transition-timing-default);
  }

.pills__item--active {
      background: var(--ifm-pills-color-background-active);
      color: var(--ifm-pills-color-active);
    }

.pills__item:not(.pills__item--active):hover {
      background: var(--ifm-pills-color-background-active);
    }

.pills--block {
    justify-content: stretch;
  }

.pills--block .pills__item {
      flex-grow: 1;
      text-align: center;
    }

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tabs {
  color: var(--ifm-tabs-color);
  display: flex;
  font-weight: var(--ifm-font-weight-bold);
  margin-bottom: 0;
  overflow-x: auto;
  padding-left: 0;
}

.tabs__item {
    border-bottom: 3px solid transparent;
    border-radius: var(--ifm-global-radius);
    cursor: pointer;
    display: inline-flex;
    padding: var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);
    transition: background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default);
  }

.tabs__item--active {
      border-bottom-color: var(--ifm-tabs-color-active-border);
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
      color: var(--ifm-tabs-color-active);
    }

.tabs__item:hover {
      background-color: var(--ifm-hover-overlay);
    }

.tabs--block {
    justify-content: stretch;
  }

.tabs--block .tabs__item {
      flex-grow: 1;
      justify-content: center;
    }

/* Mode */

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

html[data-theme='dark'] {
  --ifm-color-scheme: dark;

  --ifm-color-emphasis-0: var(--ifm-color-gray-1000);
  --ifm-color-emphasis-100: var(--ifm-color-gray-900);
  --ifm-color-emphasis-200: var(--ifm-color-gray-800);
  --ifm-color-emphasis-300: var(--ifm-color-gray-700);
  --ifm-color-emphasis-400: var(--ifm-color-gray-600);
  --ifm-color-emphasis-500: var(--ifm-color-gray-500);
  --ifm-color-emphasis-600: var(--ifm-color-gray-400);
  --ifm-color-emphasis-700: var(--ifm-color-gray-300);
  --ifm-color-emphasis-800: var(--ifm-color-gray-200);
  --ifm-color-emphasis-900: var(--ifm-color-gray-100);
  --ifm-color-emphasis-1000: var(--ifm-color-gray-0);

  --ifm-background-color: #1b1b1d;
  --ifm-background-surface-color: #242526;

  --ifm-hover-overlay: rgba(255, 255, 255, 0.05);

  --ifm-color-content: #e3e3e3;
  --ifm-color-content-secondary: rgba(255, 255, 255, 1);

  --ifm-breadcrumb-separator-filter: invert(64%) sepia(11%) saturate(0%)
    hue-rotate(149deg) brightness(99%) contrast(95%);

  --ifm-code-background: rgba(255, 255, 255, 0.1);

  --ifm-scrollbar-track-background-color: #444444;
  --ifm-scrollbar-thumb-background-color: #686868;
  --ifm-scrollbar-thumb-hover-background-color: #7a7a7a;

  --ifm-table-stripe-background: rgba(255, 255, 255, 0.07);

  --ifm-toc-border-color: var(--ifm-color-emphasis-200);
    --ifm-color-primary-contrast-background: rgb(16, 36, 69);
    --ifm-color-primary-contrast-foreground: rgb(235, 242, 252);
    --ifm-color-secondary-contrast-background: rgb(71, 71, 72);
    --ifm-color-secondary-contrast-foreground: rgb(253, 253, 254);
    --ifm-color-success-contrast-background: rgb(0, 49, 0);
    --ifm-color-success-contrast-foreground: rgb(230, 246, 230);
    --ifm-color-info-contrast-background: rgb(25, 60, 71);
    --ifm-color-info-contrast-foreground: rgb(238, 249, 253);
    --ifm-color-warning-contrast-background: rgb(77, 56, 0);
    --ifm-color-warning-contrast-foreground: rgb(255, 248, 230);
    --ifm-color-danger-contrast-background: rgb(75, 17, 19);
    --ifm-color-danger-contrast-foreground: rgb(255, 235, 236)
}

@media (min-width: 1440px) {
    .container {
      max-width: var(--ifm-container-width-xl);
    }
}

@media (max-width: 996px) {
    .col {
      --ifm-col-width: 100%;
      flex-basis: var(--ifm-col-width);
      margin-left: 0;
    }

.footer {
    --ifm-footer-padding-horizontal: 0
}

    .footer__link-separator {
      display: none;
    }

    .footer__col {
      margin-bottom: calc(var(--ifm-spacing-vertical) * 3);
    }

    .footer__link-item {
      display: block;
      width: max-content;
    }

.hero {
    padding-left: 0;
    padding-right: 0
}

.navbar > .container,
  .navbar > .container-fluid {
      padding: 0
  }

.navbar__toggle {
      display: inherit
  }

.navbar__item {
      display: none
  }

.navbar__search-input {
        width: 9rem
    }

.pills--block {
      flex-direction: column
  }

.tabs--block {
      flex-direction: column
  }
}

@media (max-width: 576px) {
    .markdown h1:first-child {
      --ifm-h1-font-size: 2rem;
    }
    .markdown > h2 {
      --ifm-h2-font-size: 1.5rem;
    }
    .markdown > h3 {
      --ifm-h3-font-size: 1.25rem;
    }
}

@media (pointer: fine) {
  .thin-scrollbar {
    scrollbar-width: thin;
  }
  .thin-scrollbar::-webkit-scrollbar {
    height: var(--ifm-scrollbar-size);
    width: var(--ifm-scrollbar-size);
  }
  .thin-scrollbar::-webkit-scrollbar-track {
    background: var(--ifm-scrollbar-track-background-color);
    border-radius: 10px;
  }
  .thin-scrollbar::-webkit-scrollbar-thumb {
    background: var(--ifm-scrollbar-thumb-background-color);
    border-radius: 10px;
  }
  .thin-scrollbar::-webkit-scrollbar-thumb:hover {
    background: var(--ifm-scrollbar-thumb-hover-background-color);
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --ifm-transition-fast: 0ms;
    --ifm-transition-slow: 0ms;
  }
}

@media print {

.table-of-contents {
    display: none
}

.footer {
    display: none
}

.menu {
    display: none
}

.navbar {
    display: none
}

.pagination-nav {
    display: none
}

.tabs {
    page-break-inside: avoid
}
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/**
 * Styles for NProgress
 * Copied over to remove unused styles for the spinner.
 * https://github.com/rstacruz/nprogress/blob/master/nprogress.css
 */

:root {
  --docusaurus-progress-bar-color: var(--ifm-color-primary);
}

#nprogress {
  pointer-events: none;
}

#nprogress .bar {
  background: var(--docusaurus-progress-bar-color);
  position: fixed;
  z-index: 1031;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
}

#nprogress .peg {
  position: absolute;
  right: 0;
  width: 100px;
  height: 100%;
  box-shadow: 0 0 10px var(--docusaurus-progress-bar-color),
    0 0 5px var(--docusaurus-progress-bar-color);
  opacity: 1;
  transform: rotate(3deg) translate(0, -4px);
}

/**
 * Any CSS included here will be global. The classic template
 * bundles Infima by default. Infima is a CSS framework designed
 * to work well for content-centric websites.
 */

/* You can override the default Infima variables here. */
:root {
  --ifm-color-primary: #2e8555;
  --ifm-color-primary-dark: #29784c;
  --ifm-color-primary-darker: #277148;
  --ifm-color-primary-darkest: #205d3b;
  --ifm-color-primary-light: #33925d;
  --ifm-color-primary-lighter: #359962;
  --ifm-color-primary-lightest: #3cad6e;
  --ifm-code-font-size: 95%;
  --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}

/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
  --ifm-color-primary: #25c2a0;
  --ifm-color-primary-dark: #21af90;
  --ifm-color-primary-darker: #1fa588;
  --ifm-color-primary-darkest: #1a8870;
  --ifm-color-primary-light: #29d5b0;
  --ifm-color-primary-lighter: #32d8b4;
  --ifm-color-primary-lightest: #4fddbf;
  --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}

.main-wrapper:has(.bans_outerWrapper) {
  max-width: none;
  margin: 0;
}

:global(.main-wrapper):has(.bans_outerWrapper) {
  max-width: none;
  margin: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

#__docusaurus-base-url-issue-banner-container {
  display: none;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.skipToContent_fXgn {
  position: fixed;
  top: 1rem;
  left: 100%;
  z-index: calc(var(--ifm-z-index-fixed) + 1);
  padding: calc(var(--ifm-global-spacing) / 2) var(--ifm-global-spacing);
  color: var(--ifm-color-emphasis-900);
  background-color: var(--ifm-background-surface-color);
}

.skipToContent_fXgn:focus {
  left: 1rem;
  box-shadow: var(--ifm-global-shadow-md);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.closeButton_CVFx {
  padding: 0;
  line-height: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.content_knG7 {
  font-size: 85%;
  text-align: center;
  padding: 5px 0;
}

.content_knG7 a {
  color: inherit;
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --docusaurus-announcement-bar-height: auto;
}

.announcementBar_mb4j {
  display: flex;
  align-items: center;
  height: var(--docusaurus-announcement-bar-height);
  background-color: var(--ifm-color-white);
  color: var(--ifm-color-black);

  /*
  Unfortunately we can't make announcement bar render above the navbar
  IE need to use border-bottom instead of shadow
  See https://github.com/facebookincubator/infima/issues/275

  box-shadow: var(--ifm-global-shadow-lw);
  z-index: calc(var(--ifm-z-index-fixed) + 1);
  */
  border-bottom: 1px solid var(--ifm-color-emphasis-100);
}

html[data-announcement-bar-initially-dismissed='true'] .announcementBar_mb4j {
  display: none;
}

.announcementBarPlaceholder_vyr4 {
  flex: 0 0 10px;
}

.announcementBarClose_gvF7 {
  flex: 0 0 30px;
  align-self: stretch;
}

.announcementBarContent_xLdY {
  flex: 1 1 auto;
}

@media print {
  .announcementBar_mb4j {
    display: none;
  }
}

@media (min-width: 997px) {
  :root {
    --docusaurus-announcement-bar-height: 30px;
  }

  .announcementBarPlaceholder_vyr4,
  .announcementBarClose_gvF7 {
    flex-basis: 50px;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.toggle_vylO {
  width: 2rem;
  height: 2rem;
}

.toggleButton_gllP {
  -webkit-tap-highlight-color: transparent;
  align-items: center;
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  transition: background var(--ifm-transition-fast);
}

.toggleButton_gllP:hover {
  background: var(--ifm-color-emphasis-200);
}

.toggleIcon_g3eP {
  display: none;
}

[data-theme-choice='system'] .systemToggleIcon_QzmC,
[data-theme-choice='light'] .lightToggleIcon_pyhR,
[data-theme-choice='dark'] .darkToggleIcon_wfgR {
  display: initial;
}

.toggleButtonDisabled_aARS {
  cursor: not-allowed;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.darkNavbarColorModeToggle_X3D1:hover {
  background: var(--ifm-color-gray-800);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.backToTopButton_sjWU {
  position: fixed;
  right: 1.3rem;
  bottom: 1.3rem;
  border-radius: 50%;
  background-color: var(--ifm-color-emphasis-200);
  width: 3rem;
  height: 3rem;
  z-index: calc(var(--ifm-z-index-fixed) - 1);
  box-shadow: var(--ifm-global-shadow-lw);
  transition: all var(--ifm-transition-fast)
    var(--ifm-transition-timing-default);
  opacity: 0;
  transform: scale(0);
  visibility: hidden;
}

.backToTopButton_sjWU::after {
  content: ' ';
  display: inline-block;
  -webkit-mask: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem no-repeat;
          mask: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem no-repeat;
  background-color: var(--ifm-color-emphasis-1000);
  width: 100%;
  height: 100%;
}

@media (hover: hover) {
  .backToTopButton_sjWU:hover {
    background-color: var(--ifm-color-emphasis-300);
  }
}

.backToTopButtonShow_xfvO {
  opacity: 1;
  transform: scale(1);
  visibility: visible;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.themedComponent_mlkZ {
  display: none;
}

[data-theme='light'] .themedComponent--light_NVdE {
  display: initial;
}

[data-theme='dark'] .themedComponent--dark_xIcU {
  display: initial;
}

/*
JS disabled??? Show light version by default => better than showing nothing
TODO bad, but we currently always show light mode when there's no data-theme
 */
html:not([data-theme]) .themedComponent--light_NVdE {
  display: initial;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --docusaurus-collapse-button-bg: transparent;
  --docusaurus-collapse-button-bg-hover: rgb(0 0 0 / 10%);
}

[data-theme='dark']:root {
  --docusaurus-collapse-button-bg: rgb(255 255 255 / 5%);
  --docusaurus-collapse-button-bg-hover: rgb(255 255 255 / 10%);
}

@media (min-width: 997px) {
  .collapseSidebarButton_PEFL {
    display: block !important;
    background-color: var(--docusaurus-collapse-button-bg);
    height: 40px;
    position: sticky;
    bottom: 0;
    border-radius: 0;
    border: 1px solid var(--ifm-toc-border-color);
  }

  .collapseSidebarButtonIcon_kv0_ {
    transform: rotate(180deg);
    margin-top: 4px;
  }

  [dir='rtl'] .collapseSidebarButtonIcon_kv0_ {
    transform: rotate(0);
  }

  .collapseSidebarButton_PEFL:hover,
  .collapseSidebarButton_PEFL:focus {
    background-color: var(--docusaurus-collapse-button-bg-hover);
  }
}

.collapseSidebarButton_PEFL {
  display: none;
  margin: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.iconExternalLink_nPIU {
  margin-left: 0.3rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.dropdownNavbarItemMobile_J0Sd {
  cursor: pointer;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.iconLanguage_nlXk {
  vertical-align: text-bottom;
  margin-right: 5px;
}

.searchBar_RVTs .dropdownMenu_qbY6 {
  left: auto !important;
  right: 0 !important;

  background: var(--search-local-modal-background, #f5f6f7);
  border-radius: 6px;
  box-shadow: var(
    --search-local-modal-shadow,
    inset 1px 1px 0 0 hsla(0, 0%, 100%, 0.5),
    0 3px 8px 0 #555a64
  );
  margin-top: 8px;
  width: var(--search-local-modal-width, 560px);
  position: relative;

  padding: var(--search-local-spacing, 12px);
}

.searchInput_YFbd:focus {
  outline: 2px solid var(--search-local-input-active-border-color, var(--ifm-color-primary));
  outline-offset: 0px;
}

@media not (max-width: 996px) {
  .searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6 {
    left: 0 !important;
    right: auto !important;
  }
}

@media (max-width: 576px) {
  .navbar__search-input:not(:focus) {
    width: 2rem;
  }

  .searchBar_RVTs .dropdownMenu_qbY6 {
    width: var(--search-local-modal-width-sm, 340px);
    max-width: calc(100vw - var(--ifm-navbar-padding-horizontal) * 2);
  }
}

html[data-theme="dark"] .searchBar_RVTs .dropdownMenu_qbY6 {
  background: var(--search-local-modal-background, var(--ifm-background-color));
  box-shadow: var(
    --search-local-modal-shadow,
    inset 1px 1px 0 0 #2c2e40,
    0 3px 8px 0 #000309
  );
}

.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2 {
  cursor: pointer;
  background: var(--search-local-hit-background, #fff);
  border-radius: 4px;
  box-shadow: var(--search-local-hit-shadow, 0 1px 3px 0 #d4d9e1);
  padding: 0 var(--search-local-spacing, 12px);
  width: 100%;

  align-items: center;
  color: var(--search-local-hit-color, #444950);
  display: flex;
  flex-direction: row;
  height: var(--search-local-hit-height, 56px);
}

html[data-theme="dark"] .dropdownMenu_qbY6 .suggestion_fB_2 {
  background: var(--search-local-hit-background, var(--ifm-color-emphasis-100));
  box-shadow: var(--search-local-hit-shadow, none);
  color: var(--search-local-hit-color, var(--ifm-font-color-base));
}

.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child) {
  margin-bottom: 4px;
}

.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29 {
  background-color: var(
    --search-local-highlight-color,
    var(--ifm-color-primary)
  );
}

.hitTree_kk6K,
.hitIcon_a7Zy,
.hitPath_ieM4,
.noResultsIcon_EBY5,
.hitFooter_E9YW a {
  color: var(--search-local-muted-color, #969faf);
}

html[data-theme="dark"] .hitTree_kk6K,
html[data-theme="dark"] .hitIcon_a7Zy,
html[data-theme="dark"] .hitPath_ieM4,
html[data-theme="dark"] .noResultsIcon_EBY5 {
  color: var(--search-local-muted-color, var(--ifm-color-secondary-darkest));
}

.hitTree_kk6K {
  display: flex;
  align-items: center;
}

.hitTree_kk6K > svg {
  height: var(--search-local-hit-height, 56px);
  opacity: 0.5;
  stroke-width: var(--search-local-icon-stroke-width, 1.4);
  width: 24px;
}

.hitIcon_a7Zy {
  stroke-width: var(--search-local-icon-stroke-width, 1.4);

  height: 20px;
  width: 20px;
}

.hitWrapper_sAK8 {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  font-weight: 500;
  justify-content: center;
  margin: 0 8px;
  overflow-x: hidden;
  width: 80%;
}

.hitWrapper_sAK8 mark {
  background: none;
  color: var(--search-local-highlight-color, var(--ifm-color-primary));
}

.hitTitle_vyVt {
  font-size: 0.9em;
}

.hitPath_ieM4 {
  font-size: 0.75em;
}

.hitPath_ieM4,
.hitTitle_vyVt {
  white-space: nowrap;
  overflow-x: hidden;
  text-overflow: ellipsis;
}

.hitAction_NqkB {
  height: 20px;
  width: 20px;
}

.hideAction_vcyE > svg {
  display: none;
}

.noResults_l6Q3 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--search-local-spacing, 12px) 0;
}

.noResultsIcon_EBY5 {
  margin-bottom: var(--search-local-spacing, 12px);
}

.hitFooter_E9YW {
  text-align: center;
  margin-top: var(--search-local-spacing, 12px);
  font-size: 0.85em;
}

.hitFooter_E9YW a {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.cursor_eG29 .hideAction_vcyE > svg {
  display: block;
}

.suggestion_fB_2.cursor_eG29,
.suggestion_fB_2.cursor_eG29 mark,
.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,
.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,
.suggestion_fB_2.cursor_eG29 .hitPath_ieM4 {
  color: var(
    --search-local-hit-active-color,
    var(--ifm-color-white)
  ) !important;
}

.suggestion_fB_2.cursor_eG29 mark {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.searchBarContainer_NW3z {
  margin-left: 16px;
}

.searchBarContainer_NW3z .searchBarLoadingRing_YnHq {
  display: none;
  position: absolute;
  left: 10px;
  top: 6px;
}

.searchBarContainer_NW3z .searchClearButton_qk4g {
  position: absolute;
  right: 0.8rem;
  top: 50%;
  transform: translate(0, -50%);
  padding: 0;
  background: none;
  border: none;
  line-height: 1rem;
}

.navbar__search {
  position: relative;
}

.searchIndexLoading_EJ1f .navbar__search-input {
  background-image: none;
}

.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq {
  display: inline-block;
}

.searchHintContainer_Pkmr {
  position: absolute;
  right: 10px;
  top: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  pointer-events: none;
  gap: 4px;
}

.searchHint_iIMx {
  color: var(--ifm-navbar-search-input-placeholder-color);
  background-color: var(--ifm-navbar-search-input-background-color);
  border: 1px solid var(--ifm-color-emphasis-500);
  box-shadow: inset 0 -1px 0 var(--ifm-color-emphasis-500);
}

@media (max-width: 576px) {
  .searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,
  .searchHintContainer_Pkmr {
    display: none;
  }
}

/* Manually make the search bar be LTR even if in RTL */
html[dir="rtl"] .searchHintContainer_Pkmr {
  right: auto;
  left: 10px;
}

html[dir="rtl"] .searchBarContainer_NW3z .searchClearButton_qk4g {
  right: auto;
  left: 0.8rem;
}

html[dir="rtl"] .searchBarContainer_NW3z .searchBarLoadingRing_YnHq {
  left: auto;
  right: 10px;
}

html[dir="rtl"] .navbar__search-input {
  padding: 0 2.25em 0 0.5em;
}

/* For autocomplete.js only. */
.input_FOTf {
}
.hint_URu1 {
}
.suggestions_X8XU {
}
.dataset_QiCy {
}
.empty_eITn {
}
/**/

/* https://loading.io/css/ */
.loadingRing_RJI3 {
  display: inline-block;
  position: relative;
  width: 20px;
  height: 20px;
  opacity: var(--search-local-loading-icon-opacity, 0.5);
}

.loadingRing_RJI3 div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  margin: 2px;
  border: 2px solid
    var(--search-load-loading-icon-color, var(--ifm-navbar-search-input-color));
  border-radius: 50%;
  animation: loading-ring_FB5o 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: var(
      --search-load-loading-icon-color,
      var(--ifm-navbar-search-input-color)
    )
    transparent transparent transparent;
}

.loadingRing_RJI3 div:nth-child(1) {
  animation-delay: -0.45s;
}

.loadingRing_RJI3 div:nth-child(2) {
  animation-delay: -0.3s;
}

.loadingRing_RJI3 div:nth-child(3) {
  animation-delay: -0.15s;
}

@keyframes loading-ring_FB5o {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/*
Workaround to avoid rendering empty search container
See https://github.com/facebook/docusaurus/pull/9385
*/
.navbarSearchContainer_Bca1:empty {
  display: none;
}

@media (max-width: 996px) {
  .navbarSearchContainer_Bca1 {
    position: absolute;
    right: var(--ifm-navbar-padding-horizontal);
  }
}

@media (min-width: 997px) {
  .navbarSearchContainer_Bca1 {
    padding: 0 var(--ifm-navbar-item-padding-horizontal);
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.navbarHideable_m1mJ {
  transition: transform var(--ifm-transition-fast) ease;
}

.navbarHidden_jGov {
  transform: translate3d(0, calc(-100% - 2px), 0);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/*
Hide color mode toggle in small viewports
 */
@media (max-width: 996px) {
  .colorModeToggle_DEke {
    display: none;
  }
}

/*
Restore some Infima style that broke with CSS Cascade Layers
See https://github.com/facebook/docusaurus/pull/11142
 */
.navbar__items--right > :last-child {
  padding-right: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.errorBoundaryError_a6uf {
  white-space: pre-wrap;
  color: red;
}

.errorBoundaryFallback_VBag {
  color: red;
  padding: 0.55rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.footerLogoLink_BH7S {
  opacity: 0.5;
  transition: opacity var(--ifm-transition-fast)
    var(--ifm-transition-timing-default);
}

.footerLogoLink_BH7S:hover {
  opacity: 1;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.menuExternalLink_NmtK {
  align-items: center;
}

.linkLabel_WmDU {
  overflow: hidden;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.categoryLink_byQd {
  overflow: hidden;
}

/*
TODO merge this logic back in Infima?
 */
.menu__link--sublist-caret::after {
  margin-left: var(--ifm-menu-link-padding-vertical);
}

.categoryLinkLabel_W154 {
  flex: 1;
  overflow: hidden;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  .menuHtmlItem_M9Kj {
    padding: var(--ifm-menu-link-padding-vertical)
      var(--ifm-menu-link-padding-horizontal);
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  .menu_SIkG {
    flex-grow: 1;
    padding: 0.5rem;
  }
  @supports (scrollbar-gutter: stable) {
    .menu_SIkG {
      padding: 0.5rem 0 0.5rem 0.5rem;
      scrollbar-gutter: stable;
    }
  }

  .menuWithAnnouncementBar_GW3s {
    margin-bottom: var(--docusaurus-announcement-bar-height);
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  .sidebar_njMd {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding-top: var(--ifm-navbar-height);
    width: var(--doc-sidebar-width);
  }

  .sidebarWithHideableNavbar_wUlq {
    padding-top: 0;
  }

  .sidebarHidden_VK0M {
    opacity: 0;
    visibility: hidden;
  }

  .sidebarLogo_isFc {
    display: flex !important;
    align-items: center;
    margin: 0 var(--ifm-navbar-padding-horizontal);
    min-height: var(--ifm-navbar-height);
    max-height: var(--ifm-navbar-height);
    color: inherit !important;
    -webkit-text-decoration: none !important;
    text-decoration: none !important;
  }

  .sidebarLogo_isFc img {
    margin-right: 0.5rem;
    height: 2rem;
  }
}

.sidebarLogo_isFc {
  display: none;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  .expandButton_TmdG {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color var(--ifm-transition-fast) ease;
    background-color: var(--docusaurus-collapse-button-bg);
  }

  .expandButton_TmdG:hover,
  .expandButton_TmdG:focus {
    background-color: var(--docusaurus-collapse-button-bg-hover);
  }

  .expandButtonIcon_i1dp {
    transform: rotate(0);
  }

  [dir='rtl'] .expandButtonIcon_i1dp {
    transform: rotate(180deg);
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --doc-sidebar-width: 300px;
  --doc-sidebar-hidden-width: 30px;
}

.docSidebarContainer_YfHR {
  display: none;
}

@media (min-width: 997px) {
  .docSidebarContainer_YfHR {
    display: block;
    width: var(--doc-sidebar-width);
    margin-top: calc(-1 * var(--ifm-navbar-height));
    border-right: 1px solid var(--ifm-toc-border-color);
    will-change: width;
    transition: width var(--ifm-transition-fast) ease;
    clip-path: inset(0);
  }

  .docSidebarContainerHidden_DPk8 {
    width: var(--doc-sidebar-hidden-width);
    cursor: pointer;
  }

  .sidebarViewport_aRkj {
    top: 0;
    position: sticky;
    height: 100%;
    max-height: 100vh;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.docMainContainer_TBSr {
  display: flex;
  width: 100%;
}

@media (min-width: 997px) {
  .docMainContainer_TBSr {
    flex-grow: 1;
    max-width: calc(100% - var(--doc-sidebar-width));
  }

  .docMainContainerEnhanced_lQrH {
    max-width: calc(100% - var(--doc-sidebar-hidden-width));
  }

  .docItemWrapperEnhanced_JWYK {
    max-width: calc(
      var(--ifm-container-width) + var(--doc-sidebar-width)
    ) !important;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.docRoot_UBD9 {
  display: flex;
  width: 100%;
}

.docsWrapper_hBAB {
  display: flex;
  flex: 1 0 auto;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.hash-link {
  opacity: 0;
  padding-left: 0.5rem;
  transition: opacity var(--ifm-transition-fast);
  -webkit-user-select: none;
          user-select: none;
}

.hash-link::before {
  content: '#';
}

.hash-link:focus,
*:hover > .hash-link {
  opacity: 1;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.anchorTargetStickyNavbar_Vzrq {
  scroll-margin-top: calc(var(--ifm-navbar-height) + 0.5rem);
}

.anchorTargetHideOnScrollNavbar_vjPI {
  scroll-margin-top: 0.5rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

html,
body {
  height: 100%;
}

.mainWrapper_z2l0 {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

/* Docusaurus-specific utility class */
.docusaurus-mt-lg {
  margin-top: 3rem;
}

#__docusaurus {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}


/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.sidebar_re4s {
  max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
  overflow-y: auto;
  position: sticky;
  top: calc(var(--ifm-navbar-height) + 2rem);
}

.sidebarItemTitle_pO2u {
  font-size: var(--ifm-h3-font-size);
  font-weight: var(--ifm-font-weight-bold);
}

.sidebarItemList_Yudw {
  font-size: 0.9rem;
}

.sidebarItem__DBe {
  margin-top: 0.7rem;
}

.sidebarItemLink_mo7H {
  color: var(--ifm-font-color-base);
  display: block;
}

.sidebarItemLink_mo7H:hover {
  -webkit-text-decoration: none;
  text-decoration: none;
}

.sidebarItemLinkActive_I1ZP {
  color: var(--ifm-color-primary) !important;
}

@media (max-width: 996px) {
  .sidebar_re4s {
    display: none;
  }
}

.yearGroupHeading_rMGB {
  margin-top: 1.6rem;
  margin-bottom: 0.4rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.yearGroupHeading_QT03 {
  margin: 1rem 0.75rem 0.5rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.cardTitleIcon_GcdP {
  font-size: 1.6rem;
  margin-right: 0.6rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.cardTitleText_nuEl {
  font-size: 1.2rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.cardTitle_mcqP {
  display: inline-flex;
  align-items: center;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.cardDescription_L2fP {
  font-size: 0.8rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.cardContainer_KhuF {
  --ifm-link-color: var(--ifm-color-emphasis-800);
  --ifm-link-hover-color: var(--ifm-color-emphasis-700);
  --ifm-link-hover-decoration: none;

  box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
  border: 1px solid var(--ifm-color-emphasis-200);
  transition: all var(--ifm-transition-fast) ease;
  transition-property: border, box-shadow;
}

.cardContainer_KhuF:hover {
  border-color: var(--ifm-color-primary);
  box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%);
}

.cardContainer_KhuF *:last-child {
  margin-bottom: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.docCardListItem_W1sv {
  margin-bottom: 2rem;
}

.docCardListItem_W1sv > * {
  height: 100%;
}

.searchContextInput_mXoe,
.searchQueryInput_CFBF {
  border-radius: var(--ifm-global-radius);
  border: var(--ifm-global-border-width) solid
    var(--ifm-color-content-secondary);
  font-size: var(--ifm-font-size-base);
  padding: 0.5rem;
  width: 100%;
  background: var(--ifm-background-color);
  color: var(--ifm-font-color-base);
  margin-bottom: 1rem;
}

.searchResultItem_U687 {
  padding: 1rem 0px;
  border-bottom: 1px solid rgb(223, 227, 232);
}

.searchResultItem_U687 > h2 {
  margin-bottom: 0;
}

.searchResultItemPath_uIbk {
  color: var(--ifm-color-content-secondary);
  font-size: 0.8rem;
  margin: 0.5rem 0px 0px;
}

.searchResultItemSummary_oZHr {
  font-style: italic;
  margin: 0.5rem 0px 0px;
}

@media only screen and (max-width: 996px) {
  .searchQueryColumn_q7nx {
    max-width: 60% !important;
  }

  .searchContextColumn_oWAF {
    max-width: 40% !important;
  }
}

@media screen and (max-width: 576px) {
  .searchQueryColumn_q7nx {
    max-width: 100% !important;
  }

  .searchContextColumn_oWAF {
    max-width: 100% !important;
    padding-left: var(--ifm-spacing-horizontal) !important;
  }
}

/* ==================== 页面背景 ==================== */
.user_cp_outer_umju {
  min-height: calc(100vh - 60px);
  padding: 32px 20px 60px;
  background: linear-gradient(180deg, #f8fafb 0%, #f0f2f5 100%);
  display: flex; justify-content: center;
  align-items: flex-start;
}

/* ==================== Toast ==================== */
.toastContainer_Qs2r {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
  z-index: 9999; display: flex; flex-direction: column; gap: 12px;
  pointer-events: none; width: 100%; max-width: 500px; padding: 0 16px;
}

.toast_sqSI {
  border-radius: 20px; padding: 18px 20px; display: flex; align-items: center; gap: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12); position: relative; overflow: hidden;
  pointer-events: all; margin: 0;
}

.toastEnter_cTxl { animation: toastSlideIn_aq9g 0.5s cubic-bezier(0.68,-0.55,0.265,1.55) forwards; }
@keyframes toastSlideIn_aq9g { from { transform:translateY(-100px); opacity:0; } to { transform:translateY(0); opacity:1; } }

.toastLeave__yGL { animation: toastSlideOut_XpJT 0.5s cubic-bezier(0.32,0,0.67,0) forwards; }
@keyframes toastSlideOut_XpJT {
  to { transform:translateY(-100px); opacity:0; height:0; padding-top:0; padding-bottom:0; margin-top:0; margin-bottom:0; border:0; }
}

.toast_sqSI.success_jxjz { background:#ecfdf5; color:#166534; border:1px solid #86efac; }
.toast_sqSI.error_F5fn   { background:#fef2f2; color:#991b1b; border:1px solid #fca5a5; }
.toast_sqSI.warning_ML2I { background:#fffbeb; color:#92400e; border:1px solid #fcd34d; }
.toast_sqSI.info_tCCD    { background:#eff6ff; color:#1e40af; border:1px solid #93c5fd; }

.toastIconWrapper_wR_E { flex-shrink:0; width:36px; height:36px; display:flex; align-items:center; justify-content:center; }
.toastIcon_DKC1 { width:36px; height:36px; }
.toastMessage_AYX1 { flex:1; font-size:15px; font-weight:500; line-height:1.4; padding-right:10px; word-break:break-all; }
.toastClose_ih0U { background:none; border:none; font-size:28px; font-weight:300; line-height:1; cursor:pointer; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:50%; opacity:0.7; transition:all 0.2s; margin-left:auto; }
.toastClose_ih0U:hover { opacity:1; background:rgba(0,0,0,0.1); }

.toastProgress_mEVl { position:absolute; bottom:0; left:0; width:100%; height:4px; background:rgba(0,0,0,0.08); overflow:hidden; }
.toastProgressBar_oRNu { height:100%; width:100%; animation:toastCountdown_u0Zr 5s linear forwards; }
.toast_sqSI.success_jxjz .toastProgressBar_oRNu { background:#22c55e; }
.toast_sqSI.error_F5fn   .toastProgressBar_oRNu { background:#ef4444; }
.toast_sqSI.warning_ML2I .toastProgressBar_oRNu { background:#f59e0b; }
.toast_sqSI.info_tCCD    .toastProgressBar_oRNu { background:#3b82f6; }
@keyframes toastCountdown_u0Zr { from { transform:translateX(0); } to { transform:translateX(-100%); } }

/* ==================== 卡片容器 ==================== */
.user_cp_container_SGHQ {
  width: 100%; max-width: 720px; padding: 32px 28px;
  background: #ffffff; border-radius: 20px;
  box-shadow: 0 10px 30px rgba(20,23,28,0.08);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.user_cp_title_lynP {
  font-size: 26px; font-weight: 700; color: #1f2937;
  text-align: center; margin: 0 0 20px;
}

.user_cp_form_ipue {
  display: flex; flex-direction: column; gap: 14px;
}

.user_cp_form_ipue input {
  padding: 13px 16px; border-radius: 12px;
  border: 1.5px solid #eef0f3; background: #ffffff;
  font-size: 15px; outline: none; transition: all 0.2s;
}

.user_cp_form_ipue input:focus {
  border-color: #34d399;
  box-shadow: 0 0 0 4px rgba(52,211,153,0.15);
}

.user_cp_submitBtn_jKDk {
  padding: 14px 0; border-radius: 12px; font-size: 16px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff; font-weight: 600; border: none;
  cursor: pointer; transition: all 0.2s;
}

.user_cp_submitBtn_jKDk:disabled { opacity: 0.55; cursor: not-allowed; }

/* ==================== 用户信息区 ==================== */
.loggedInInfo_MNPr {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; margin-bottom: 20px; padding: 20px 0;
}

.avatarCircle_l0ix {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, #27ae60 0%, #1db954 100%);
  color: #fff; font-size: 28px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(39,174,96,0.3);
}

.playerNameDisplay_n47V { font-size: 20px; font-weight: 700; color: #1f2937; }
.loginBadge_wWRz { font-size: 12px; font-weight: 500; color: #16a34a; background: #ecfdf5; padding: 3px 12px; border-radius: 20px; border: 1px solid #86efac; }

/* ==================== 按钮变体 ==================== */
.logoutBtn_f_y6 {
  padding: 14px 0; border-radius: 12px;
  background: transparent; color: #ef4444;
  font-weight: 600; font-size: 16px; border: 1.5px solid #fca5a5;
  cursor: pointer; transition: all 0.2s;
}
.logoutBtn_f_y6:hover { background: #fef2f2; }

.cancelBtn_lDy_ {
  padding: 12px 0; border-radius: 12px;
  background: transparent; color: #64748b;
  font-weight: 500; font-size: 14px; border: 1px solid #e2e8f0;
  cursor: pointer; transition: all 0.2s;
}
.cancelBtn_lDy_:hover { background: #f1f5f9; }

.sectionTitle_rodi { font-size: 15px; font-weight: 600; color: #374151; text-align: center; }
.hintText_tVpr { text-align: center; font-size: 13px; color: #94a3b8; margin-top: 4px; }

/* ==================== 加载动画 ==================== */
.loadingSpinner_STBH {
  width: 36px; height: 36px; margin: 0 auto;
  border: 3px solid #e2e8f0; border-top-color: #27ae60;
  border-radius: 50%; animation: spin_W36Z 0.8s linear infinite;
}
@keyframes spin_W36Z { to { transform: rotate(360deg); } }

/* ==================== 暗区练习服入口卡片 ==================== */
.tarkovCard_iVL4 {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 20px; margin-bottom: 16px;
  border-radius: 20px;
  background: linear-gradient(135deg, #e8f5e9 0%, #f0faf1 100%);
  border: 1px solid #c8e6c9;
  color: #1b5e20; -webkit-text-decoration: none; text-decoration: none;
  transition: all 0.25s;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.tarkovCard_iVL4:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.10);
  color: #1b5e20; -webkit-text-decoration: none; text-decoration: none;
}

.tarkovIcon_i6rL {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: rgba(39,174,96,0.12);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.tarkovIcon_i6rL svg { width: 24px; height: 24px; color: #27ae60; }

.tarkovInfo_k4zV { flex: 1; }
.tarkovName_DyWn { font-size: 16px; font-weight: 700; }
.tarkovDesc_J6Uq { font-size: 12px; color: #4caf50; margin-top: 2px; }
.tarkovArrow_AzKt { flex-shrink: 0; color: #81c784; }

html[data-theme="dark"] .tarkovCard_iVL4 {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  border: none;
  color: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
html[data-theme="dark"] .tarkovCard_iVL4:hover { color: #fff; }
html[data-theme="dark"] .tarkovIcon_i6rL { background: rgba(255,255,255,0.1); }
html[data-theme="dark"] .tarkovIcon_i6rL svg { color: #4ade80; }
html[data-theme="dark"] .tarkovDesc_J6Uq { color: rgba(255,255,255,0.55); }
html[data-theme="dark"] .tarkovArrow_AzKt { color: rgba(255,255,255,0.3); }

/* ==================== 深色模式 ==================== */
html[data-theme="dark"] .user_cp_outer_umju { background: linear-gradient(180deg, #0f172a 0%, #0c1320 100%); }
html[data-theme="dark"] .user_cp_container_SGHQ { background: #1e293b; box-shadow: 0 10px 30px rgba(0,0,0,0.6); }
html[data-theme="dark"] .user_cp_title_lynP { color: #f3f4f6; }
html[data-theme="dark"] .user_cp_form_ipue input { background: #1e293b; border-color: #334155; color: #e2e8f0; }
html[data-theme="dark"] .user_cp_form_ipue input::placeholder { color: #64748b; }
html[data-theme="dark"] .user_cp_submitBtn_jKDk { background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%); box-shadow: 0 6px 18px rgba(22,163,74,0.35); }
html[data-theme="dark"] .playerNameDisplay_n47V { color: #f3f4f6; }
html[data-theme="dark"] .loginBadge_wWRz { background: #052e16; color: #4ade80; border-color: #22c55e; }
html[data-theme="dark"] .logoutBtn_f_y6 { color: #fca5a5; border-color: #7f1d1d; }
html[data-theme="dark"] .logoutBtn_f_y6:hover { background: #450a0a; }
html[data-theme="dark"] .cancelBtn_lDy_ { color: #94a3b8; border-color: #334155; }
html[data-theme="dark"] .cancelBtn_lDy_:hover { background: #1e293b; }
html[data-theme="dark"] .hintText_tVpr { color: #64748b; }
html[data-theme="dark"] .sectionTitle_rodi { color: #e2e8f0; }
html[data-theme="dark"] .toast_sqSI.success_jxjz { background:#052e16; color:#86efac; border-color:#22c55e; }
html[data-theme="dark"] .toast_sqSI.error_F5fn   { background:#450a0a; color:#fca5a5; border-color:#ef4444; }
html[data-theme="dark"] .toast_sqSI.warning_ML2I { background:#451e0a; color:#fcd34d; border-color:#f59e0b; }
html[data-theme="dark"] .toast_sqSI.info_tCCD    { background:#1e2a44; color:#93c5fd; border-color:#3b82f6; }
html[data-theme="dark"] .toastProgress_mEVl { background:rgba(255,255,255,0.1); }
html[data-theme="dark"] .toastClose_ih0U:hover { background:rgba(255,255,255,0.15); }
html[data-theme="dark"] .loadingSpinner_STBH { border-color: #334155; border-top-color: #22c55e; }

/* ==================== 移动端 ==================== */
@media (max-width: 480px) {
  .toastContainer_Qs2r { padding: 0 12px; gap: 10px; }
  .toast_sqSI { padding: 16px; }
  .user_cp_container_SGHQ { margin: 0 12px; padding: 28px 20px; }
}

/* ─── Login ─── */
.loginWrap_ZUuW {
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #f7f8fb 0%, #f5f6fa 100%);
  padding: 20px;
}

.loginCard_FT3y {
  width: 100%;
  max-width: 380px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(20, 23, 28, 0.06);
  padding: 40px 36px;
  text-align: center;
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.loginTitle_bTHk {
  font-size: 22px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 4px;
}

.loginSub_RAJY {
  font-size: 13px;
  color: #9ca3af;
  margin: 0 0 28px;
}

.loginForm_HALG {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.loginInput_y0q_ {
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  text-align: center;
}

.loginInput_y0q_:focus {
  border-color: #27ae60;
  box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.1);
}

.loginError_l8lN {
  color: #ef4444;
  font-size: 13px;
  margin: 0;
}

.loginBtn_S6UD {
  padding: 12px;
  border-radius: 10px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: transform 0.15s;
  font-family: inherit;
}

.loginBtn_S6UD:hover:not(:disabled) { transform: translateY(-1px); }
.loginBtn_S6UD:disabled { opacity: 0.6; cursor: not-allowed; }

/* ─── Admin Layout ─── */
.adminWrap_DvYv {
  min-height: calc(100vh - 60px);
  background: #f5f6fa;
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.adminHeader_xmp9 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 32px;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}

.adminTitle_ZazF {
  font-size: 18px;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
}

.logoutBtn_j0Uy {
  padding: 7px 16px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

.logoutBtn_j0Uy:hover {
  border-color: #ef4444;
  color: #ef4444;
}

/* ── Tabs ── */
.tabBar_Sn8l {
  display: flex;
  gap: 0;
  padding: 0 32px;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}

.tabBtn_p7rF {
  padding: 12px 20px;
  border: none;
  background: transparent;
  color: #6b7280;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.15s;
  font-family: inherit;
}

.tabBtn_p7rF:hover {
  color: #374151;
}

.tabBtnActive_zzBQ {
  color: #27ae60;
  border-bottom-color: #27ae60;
  font-weight: 600;
}

/* ── Content ── */
.adminContent_Lt0K {
  padding: 24px 32px;
  max-width: 1400px;
  margin: 0 auto;
}

/* ── Toolbar ── */
.toolbar_F9Yy {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.searchInput_QFYd {
  padding: 9px 14px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  font-size: 13px;
  outline: none;
  min-width: 200px;
  transition: border-color 0.15s;
}

.searchInput_QFYd:focus {
  border-color: #27ae60;
}

.filterSelect_OVge {
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  font-size: 13px;
  outline: none;
  background: #fff;
  cursor: pointer;
}

.toolBtn__kCV {
  padding: 9px 18px;
  border-radius: 8px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: transform 0.1s;
}

.toolBtn__kCV:hover { transform: translateY(-1px); }

.totalText_B6kB {
  font-size: 13px;
  color: #9ca3af;
  margin-left: 4px;
}

.loadingText_L5qe {
  color: #9ca3af;
  font-size: 14px;
  text-align: center;
  padding: 40px 0;
}

/* ── Table ── */
.tableWrap_zKPI {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  overflow-x: auto;
}

.table_lfxH {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  display: table !important;
  table-layout: auto;
}

.table_lfxH th {
  padding: 11px 14px;
  text-align: left;
  font-weight: 600;
  color: #374151;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
}

.table_lfxH td {
  padding: 10px 14px;
  border-bottom: 1px solid #f3f4f6;
  color: #4b5563;
}

.table_lfxH tbody tr:hover {
  background: #f9fafb;
}

.rowExpired_AN8u {
  opacity: 0.55;
}

.reasonCell_HeQp {
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contentCell_NzoP {
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contentCellExpanded_EqtC {
  white-space: pre-wrap;
  word-break: break-all;
  overflow: auto;
  max-height: 200px;
}

.ipCell_JzuK {
  font-family: monospace;
  font-size: 12px;
  color: #9ca3af;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clickableRow_IE8u {
  cursor: pointer;
}

.emptyCell_SsT_ {
  text-align: center;
  color: #9ca3af;
  padding: 40px 14px !important;
}

/* ── Tags ── */
.expiredTag_qCis {
  color: #f59e0b;
  font-weight: 600;
  font-size: 12px;
}

.typeTag_P2FT {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
}

.type_bug_x_vL { background: #fef2f2; color: #dc2626; }
.type_suggestion_ndxE { background: #eff6ff; color: #2563eb; }
.type_complaint_g_yw { background: #fffbeb; color: #d97706; }
.type_other_ZBtL { background: #f3f4f6; color: #6b7280; }

/* ── Buttons ── */
.dangerBtn_QcmK {
  padding: 5px 12px;
  border-radius: 6px;
  border: 1px solid #fecaca;
  background: #fff;
  color: #dc2626;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

.dangerBtn_QcmK:hover {
  background: #fef2f2;
  border-color: #f87171;
}

/* ── Pagination ── */
.pagination_NmT6 {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
}

.pageBtn_ZQ8q {
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #fff;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}

.pageBtn_ZQ8q:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pageInfo_CTFX {
  font-size: 13px;
  color: #6b7280;
  font-weight: 500;
}

/* ── Dark mode ─── */
html[data-theme="dark"] .loginWrap_ZUuW,
html[data-theme="dark"] .adminWrap_DvYv {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

html[data-theme="dark"] .loginCard_FT3y,
html[data-theme="dark"] .adminHeader_xmp9,
html[data-theme="dark"] .tabBar_Sn8l,
html[data-theme="dark"] .tableWrap_zKPI,
html[data-theme="dark"] .toolBtn__kCV,
html[data-theme="dark"] .pageBtn_ZQ8q,
html[data-theme="dark"] .filterSelect_OVge {
  background: #1e293b;
  border-color: #334155;
}

html[data-theme="dark"] .loginTitle_bTHk,
html[data-theme="dark"] .adminTitle_ZazF {
  color: #f3f4f6;
}

html[data-theme="dark"] .loginSub_RAJY,
html[data-theme="dark"] .totalText_B6kB {
  color: #94a3b8;
}

html[data-theme="dark"] .loginInput_y0q_,
html[data-theme="dark"] .searchInput_QFYd {
  border-color: #334155;
  background: #0f172a;
  color: #e2e8f0;
}

html[data-theme="dark"] .loginInput_y0q_::placeholder,
html[data-theme="dark"] .searchInput_QFYd::placeholder {
  color: #64748b;
}

html[data-theme="dark"] .loginInput_y0q_:focus,
html[data-theme="dark"] .searchInput_QFYd:focus {
  border-color: #22c55e;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
}

html[data-theme="dark"] .loginError_l8lN { color: #f87171; }

html[data-theme="dark"] .tabBtn_p7rF { color: #94a3b8; }
html[data-theme="dark"] .tabBtn_p7rF:hover { color: #e2e8f0; }
html[data-theme="dark"] .tabBtnActive_zzBQ { color: #4ade80; border-bottom-color: #4ade80; }

html[data-theme="dark"] .table_lfxH th {
  color: #e2e8f0;
  background: #334155;
  border-bottom-color: #475569;
}

html[data-theme="dark"] .table_lfxH td {
  color: #cbd5e1;
  border-bottom-color: #334155;
}

html[data-theme="dark"] .table_lfxH tbody tr:hover { background: #334155; }

html[data-theme="dark"] .logoutBtn_j0Uy {
  border-color: #475569;
  color: #94a3b8;
}

html[data-theme="dark"] .logoutBtn_j0Uy:hover {
  border-color: #f87171;
  color: #f87171;
}

html[data-theme="dark"] .dangerBtn_QcmK {
  border-color: #7f1d1d;
  background: transparent;
  color: #f87171;
}

html[data-theme="dark"] .dangerBtn_QcmK:hover { background: rgba(220, 38, 38, 0.1); }

html[data-theme="dark"] .type_bug_x_vL { background: rgba(220, 38, 38, 0.12); color: #fca5a5; }
html[data-theme="dark"] .type_suggestion_ndxE { background: rgba(37, 99, 235, 0.12); color: #93c5fd; }
html[data-theme="dark"] .type_complaint_g_yw { background: rgba(217, 119, 6, 0.12); color: #fcd34d; }
html[data-theme="dark"] .type_other_ZBtL { background: rgba(107, 114, 128, 0.12); color: #9ca3af; }

/* ── Responsive ── */
@media (max-width: 768px) {
  .adminHeader_xmp9 { padding: 12px 16px; }
  .tabBar_Sn8l { padding: 0 16px; overflow-x: auto; }
  .adminContent_Lt0K { padding: 16px; }
  .toolbar_F9Yy { gap: 8px; }
  .searchInput_QFYd { min-width: 140px; flex: 1; }
}

/* ==================== 页面背景 ==================== */
.outer_jeej {
  min-height: calc(100vh - 60px);
  padding: 32px 20px 60px;
  background: linear-gradient(180deg, #f8fafb 0%, #f0f2f5 100%);
  display: flex; justify-content: center;
}

.page_C49n {
  width: 100%; max-width: 1100px;
  animation: fadeInUp_U9Jr 0.4s ease;
}
@keyframes fadeInUp_U9Jr {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==================== 头部 ==================== */
.pageHeader_IHnN {
  text-align: center; margin-bottom: 28px;
}

.backLink_I7fi {
  display: inline-block; margin-bottom: 12px;
  font-size: 13px; color: #27ae60; -webkit-text-decoration: none; text-decoration: none; font-weight: 500;
  transition: opacity 0.15s ease;
}
.backLink_I7fi:hover { -webkit-text-decoration: underline; text-decoration: underline; opacity: 0.8; }

.backBtn_qcjh {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px; margin-bottom: 12px;
  border-radius: 8px; font-size: 13px; font-weight: 500;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #475569; background: #f1f5f9; border: 1px solid #e2e8f0;
  transition: all 0.15s;
}
.backBtn_qcjh:hover { background: #e2e8f0; color: #1e293b; -webkit-text-decoration: none; text-decoration: none; }
html[data-theme="dark"] .backBtn_qcjh { color: #94a3b8; background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .backBtn_qcjh:hover { background: #283548; color: #e2e8f0; }

.pageTitle_fPfW {
  font-size: 24px; font-weight: 700; color: #1a1a2e; margin: 0 0 6px;
}
.playerTag_SM0h {
  font-size: 14px; color: #94a3b8; margin: 0;
}

/* ==================== 数据看板（Bento 网格）==================== */
.dashboard_v_1w { margin-bottom: 24px; }

/* 行容器 */
.dbKpiRow_ffW8, .dbRow_ZGjX {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  margin-bottom: 8px;
}

/* 卡片 */
.dbCard_kSdU {
  background: #fff; border-radius: 14px; padding: 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
  position: relative; overflow: hidden;
  transition: box-shadow 0.2s;
}
.dbCard_kSdU:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }

/* 列跨度 */
.dbSpan1_Wbzb { grid-column: span 1; }
.dbSpan2_tBcZ { grid-column: span 2; }
.dbSpan3_sQTS { grid-column: span 3; }
.dbSpan4_imoY { grid-column: span 4; }

/* 卡片右上角图标 */
.dbCardIcon_KWZ_ {
  position: absolute; top: 10px; right: 10px;
  width: 28px; height: 28px; color: #d1d5db;
  pointer-events: none;
}
.dbCardIcon_KWZ_ svg { width: 100%; height: 100%; }

/* 卡片内容 */
.dbCardLabel_SAWw {
  font-size: 14px; color: #374151; font-weight: 600;
  margin-bottom: 6px; padding-right: 32px;
}
.dbCardValue_or8L {
  font-size: 26px; font-weight: 700; color: #1e293b;
}
.dbCardUnit_iNUF { font-size: 12px; color: #94a3b8; font-weight: 400; }
.dbCardSub_J9lH { font-size: 11px; color: #3b82f6; font-weight: 500; margin-left: 6px; }

/* ── 仓库头部（标签+价值）── */
.vaultHeader_m7BF {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px; padding-right: 32px;
}
.vaultValueHint_rSdu {
  font-size: 11px; color: #94a3b8; font-weight: 400;
}
html[data-theme="dark"] .vaultValueHint_rSdu { color: #64748b; }
.vaultValueBadge_bHcn {
  font-size: 12px; font-weight: 600; color: #b45309;
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  border: 1px solid #fcd34d; border-radius: 6px;
  padding: 2px 10px; white-space: nowrap;
}
.vaultValueBadge_bHcn span { font-size: 10px; color: #92400e; font-weight: 400; }
html[data-theme="dark"] .vaultValueBadge_bHcn {
  color: #fbbf24; background: linear-gradient(135deg, #1e1a0a 0%, #1a1608 100%);
  border-color: #5a3e0a;
}
html[data-theme="dark"] .vaultValueBadge_bHcn span { color: #d97706; }

/* ── 生成器等级（进度条版）── */
.producerLevels_ao_w {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 18px;
}
.producerLevelRow_RvN5 {
  display: flex; align-items: center; gap: 10px;
}
.producerLevelLabel_vRtN {
  font-size: 13px; font-weight: 600; color: #374151;
  min-width: 90px;
}
.producerLevelBar_UxFW {
  flex: 1; height: 10px;
  background: #e8ecf1; border-radius: 5px; overflow: hidden;
}
.producerLevelFill_foCO {
  height: 100%; border-radius: 5px;
  background: linear-gradient(90deg, #27ae60, #4ade80);
  transition: width 0.5s ease;
  min-width: 4px;
}
.producerLevelNum_Ru0S {
  font-size: 13px; font-weight: 700; color: #1e293b;
  min-width: 38px; text-align: right;
}

/* ── 背包/保险箱信息 ── */
.backpackInfo_aEfM {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
  font-size: 14px; font-weight: 600; color: #374151;
}
.damagedTag_rjLA {
  font-size: 11px; padding: 2px 8px;
  background: #fef2f2; color: #dc2626;
  border-radius: 6px; font-weight: 600;
}

/* ── 空状态提示 ── */
.emptyHint__nil {
  text-align: center; padding: 24px 0;
  font-size: 13px; color: #94a3b8;
}

/* ── 仓库页数选择 ── */
.vaultPagesBar_j7AX {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  margin-bottom: 14px;
}
.vaultPageBtn_xcCi {
  display: inline-flex; align-items: center;
  padding: 5px 12px;
  background: #f8fafc; color: #475569;
  border: 1px solid #e2e8f0; border-radius: 8px;
  font-size: 12px; font-weight: 500; cursor: pointer;
  transition: all 0.15s;
}
.vaultPageBtn_xcCi:hover { background: #f1f5f9; border-color: #cbd5e1; }
.vaultPageBtnActive_gYHH {
  background: #eff6ff; color: #2563eb;
  border-color: #93c5fd;
}
.vaultTotalHint_bdit {
  margin-left: auto; font-size: 12px; color: #94a3b8;
}
html[data-theme="dark"] .vaultPageBtn_xcCi { background: #1e293b; color: #94a3b8; border-color: #334155; }
html[data-theme="dark"] .vaultPageBtn_xcCi:hover { background: #283548; }
html[data-theme="dark"] .vaultPageBtnActive_gYHH { background: #1e3a5f; color: #60a5fa; border-color: #2563eb; }
html[data-theme="dark"] .vaultTotalHint_bdit { color: #64748b; }

/* ── 仓库页按钮加载转圈 ── */
.vaultBtnSpinner_xGeB {
  display: inline-block; width: 12px; height: 12px;
  border: 2px solid #cbd5e1; border-top-color: #2563eb;
  border-radius: 50%; animation: vaultSpin_zPUg 0.6s linear infinite;
  vertical-align: middle; margin-right: 4px; flex-shrink: 0;
}
@keyframes vaultSpin_zPUg { to { transform: rotate(360deg); } }
html[data-theme="dark"] .vaultBtnSpinner_xGeB { border-color: #475569; border-top-color: #60a5fa; }

/* ==================== 深色模式 - 看板 ==================== */
html[data-theme="dark"] .dbCard_kSdU { background: #1a2332; box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
html[data-theme="dark"] .dbCard_kSdU:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.3); }
html[data-theme="dark"] .dbCardIcon_KWZ_ { color: #334155; }
html[data-theme="dark"] .dbCardLabel_SAWw { color: #94a3b8; }
html[data-theme="dark"] .dbCardValue_or8L { color: #e2e8f0; }
html[data-theme="dark"] .dbCardUnit_iNUF { color: #64748b; }
html[data-theme="dark"] .dbCardSub_J9lH { color: #60a5fa; }
html[data-theme="dark"] .producerLevelLabel_vRtN { color: #e2e8f0; }
html[data-theme="dark"] .producerLevelBar_UxFW { background: #1e293b; }
html[data-theme="dark"] .producerLevelNum_Ru0S { color: #e2e8f0; }
html[data-theme="dark"] .damagedTag_rjLA { background: #450a0a; color: #fca5a5; }
html[data-theme="dark"] .emptyHint__nil { color: #64748b; }

/* ==================== 加载/空状态 ==================== */
.loadingCard_KxZP, .emptyCard_n4DU {
  background: transparent; border-radius: 0; padding: 80px 32px 40px;
  text-align: center;
  box-shadow: none;
  width: 100%; max-width: none;
}
.spinner_Qkue {
  width: 36px; height: 36px; margin: 0 auto 16px;
  border: 3px solid rgba(0,0,0,0.1); border-top-color: #27ae60;
  border-radius: 50%; animation: spin_w5gS 0.7s linear infinite;
}
@keyframes spin_w5gS { to { transform: rotate(360deg); } }
.loadingCard_KxZP p { color: #94a3b8; font-size: 14px; margin: 0; }

html[data-theme="dark"] .spinner_Qkue { border-color: rgba(255,255,255,0.1); border-top-color: #4ade80; }
html[data-theme="dark"] .loadingCard_KxZP p { color: #64748b; }

.emptyIcon_cLg8 { font-size: 48px; margin-bottom: 16px; }
.emptyCard_n4DU h2 { font-size: 20px; color: #1e293b; margin: 0 0 8px; }
.emptyCard_n4DU p { font-size: 14px; color: #94a3b8; margin: 0 0 20px; }

/* ==================== 总览卡片网格 ==================== */
.overviewGrid_OcW9 {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  margin-bottom: 24px;
}

.statCard_UT13 {
  background: #fff; border-radius: 16px; padding: 18px 12px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(20,23,28,0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: default;
}
.statCard_UT13:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(20,23,28,0.10);
}

.statValue_zXZn {
  font-size: 28px; font-weight: 700; color: #1e293b; line-height: 1.2;
}

.statLabel_GmWB {
  font-size: 12px; color: #94a3b8; font-weight: 500; margin-top: 4px;
}

/* ==================== 雷达图区域 ==================== */
.chartSection_AQVr {
  background: #fff; border-radius: 20px; padding: 24px 20px;
  margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(20,23,28,0.04);
  text-align: center;
  transition: box-shadow 0.15s ease;
}
.chartSection_AQVr:hover { box-shadow: 0 4px 20px rgba(20,23,28,0.10); }

.sectionTitle_WaxC {
  font-size: 17px; font-weight: 700; color: #1e293b; margin: 0 0 16px;
}

.radarWrap_wR83 {
  max-width: 340px; margin: 0 auto;
}

.radarSvg_HAIZ {
  width: 100%; height: auto;
}

.extraStats_fJ6p {
  display: flex; justify-content: center; gap: 24px;
  margin-top: 8px; font-size: 13px; color: #64748b;
}
.extraStats_fJ6p strong { color: #1e293b; }

/* ==================== 对局列表 ==================== */
.gameList_jTar {
  display: flex; flex-direction: column; gap: 10px;
}

.gameCard_Xtx9 {
  background: #fff; border-radius: 12px; padding: 14px 18px;
  box-shadow: 0 1px 4px rgba(20,23,28,0.04);
  border: 1px solid #eef0f2;
  transition: all 0.2s ease;
}

.gameLose_VR2J {
  border-left: 3px solid #ef4444;
}
.gameWin_CWSp {
  border-left: 3px solid #27ae60;
}

.gameTop_A1k_ {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 10px;
}

.gameResult_ROwm {
  font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 5px;
}
.gameWin_CWSp .gameResult_ROwm { color: #16a34a; }
.gameLose_VR2J .gameResult_ROwm { color: #dc2626; }

.gameTime_McyD {
  font-size: 12px; color: #94a3b8;
}

.gameStats_Xend {
  display: flex; gap: 14px;
}

.gameStat_pVhv {
  flex: 1; text-align: center;
  background: #f8fafc; border-radius: 10px; padding: 10px 6px;
  transition: background 0.15s ease;
}
.gameStat_pVhv:hover { background: #edf2f7; }

.gsVal_wCYL {
  font-size: 18px; font-weight: 700; color: #1e293b;
}

.gsLabel_dErx {
  font-size: 11px; color: #94a3b8; font-weight: 500; margin-top: 2px;
}

.killedRow_ivIG {
  margin-top: 10px; font-size: 12px; color: #64748b;
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px;
}

.killedTag_ezvp {
  display: inline-block; padding: 2px 8px;
  background: #fef2f2; color: #dc2626;
  border-radius: 6px; font-size: 11px; font-weight: 500;
  transition: transform 0.1s ease;
}
.killedTag_ezvp:hover { transform: scale(1.08); }

/* ==================== 背包展开 ==================== */
.expandHint_mz0U {
  text-align: center; font-size: 12px; color: #94a3b8;
  padding-top: 10px; margin-top: 8px;
  border-top: 1px dashed #e8ecf1;
  transition: color 0.15s ease;
  cursor: pointer; -webkit-user-select: none; user-select: none;
  display: flex; align-items: center; justify-content: center; gap: 4px;
}
.expandHint_mz0U svg { flex-shrink: 0; }
.expandHint_mz0U:hover { color: #27ae60; }
.expandedInv_Z12W {
  overflow: hidden; animation: expandIn_wWhe 0.25s ease;
  margin-top: 12px; padding-top: 10px;
  border-top: 1px solid #e8ecf1;
}
@keyframes expandIn_wWhe {
  from { max-height: 0; opacity: 0; padding-top: 0; margin-top: 0; border-top-color: transparent; }
  to { max-height: 800px; opacity: 1; }
}
@keyframes collapseOut_Ka48 {
  from { max-height: 800px; opacity: 1; }
  to { max-height: 0; opacity: 0; padding-top: 0; margin-top: 0; border-top-color: transparent; }
}
.closing_Kok4 {
  animation: collapseOut_Ka48 0.2s ease forwards;
}

/* ── 照搬参考 HTML 的 Minecraft 槽位样式 ── */
.invslot-container {
  display: flex; flex-wrap: wrap; gap: 2px;
  background: #e8eaed;
  border: 1px solid #cfd3d8;
  padding: 6px;
  border-radius: 6px;
}
.invslot {
  width: 32px; height: 32px;
  background: #ebecee;
  border: 1px solid #d0d4d9;
  border-radius: 4px;
  display: inline-flex; justify-content: center; align-items: center;
  position: relative;
  cursor: pointer; flex-shrink: 0;
  transition: all 0.15s;
}
.invslot:hover {
  border-color: #27ae60;
  box-shadow: 0 0 0 3px rgba(39,174,96,0.10);
  z-index: 10;
  background: #edf7f0;
}
.invslot-item {
  width: 100%; height: 100%; display: none;
  justify-content: center; align-items: center;
  position: relative; padding: 2px; box-sizing: border-box;
  overflow: hidden;
}
.invslot-item.active { display: flex; }
.invslot-item img {
  width: 100%; height: 100%; object-fit: cover; object-position: 0 0; image-rendering: pixelated;
  -webkit-user-drag: none; -webkit-user-select: none; user-select: none;
}
.invslot-item canvas {
  -webkit-user-drag: none; -webkit-user-select: none; user-select: none;
}
.invslot-stacksize {
  position: absolute; bottom: -2px; right: 1px;
  color: #404040; font-size: 10px; font-weight: normal;
  font-family: 'Minecraft', monospace;
  text-shadow: 1px 1px 0 rgba(255,255,255,0.6);
  pointer-events: none; z-index: 5; image-rendering: pixelated;
  user-select: none; -webkit-user-select: none;
}
.invslot-fallback {
  width: 100%; height: 100%; display: flex;
  justify-content: center; align-items: center;
  font-family: 'Minecraft', monospace;
  font-size: 10px; color: #fff; font-weight: bold;
  text-shadow: 1px 1px #000;
  background: linear-gradient(135deg, #555, #222);
}

/* ── 附魔光效 ── */
.invslot-glint {
  position: absolute; inset: 2px; pointer-events: none; z-index: 4;
  background-image: url(/assets/images/enchanted_glint_item-8a8e2420950aae4958bbb4909043f257.png);
  background-size: 200% 200%;
  opacity: 0.55;
  mix-blend-mode: screen;
  image-rendering: pixelated;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  animation: glint-drift_jtN8 1.5s linear infinite;
}
@keyframes glint-drift_jtN8 {
  0%   { background-position: 0 0; }
  100% { background-position: -100% 50%; }
}

/* ── 指南针动画 ── */
@keyframes compass-spin_FOqq {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

/* ==================== 深色模式 ==================== */
html[data-theme="dark"] .outer_jeej {
  background: linear-gradient(180deg, #0f172a 0%, #0c1320 100%);
}
html[data-theme="dark"] .pageTitle_fPfW { color: #e2e8f0; }
html[data-theme="dark"] .sectionTitle_WaxC { color: #e2e8f0; }
html[data-theme="dark"] .backLink_I7fi { color: #4ade80; }

html[data-theme="dark"] .loadingCard_KxZP,
html[data-theme="dark"] .emptyCard_n4DU,
html[data-theme="dark"] .statCard_UT13,
html[data-theme="dark"] .chartSection_AQVr {
  background: #1a2332;
  box-shadow: 0 2px 12px rgba(0,0,0,0.2);
}
html[data-theme="dark"] .gameCard_Xtx9 {
  background: #1a2332; border-color: #262e3a;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
html[data-theme="dark"] .statValue_zXZn { color: #e2e8f0; }
html[data-theme="dark"] .gsVal_wCYL { color: #e2e8f0; }
html[data-theme="dark"] .gameStat_pVhv { background: #111827; }
html[data-theme="dark"] .killedTag_ezvp { background: #450a0a; color: #fca5a5; }
html[data-theme="dark"] .extraStats_fJ6p strong { color: #e2e8f0; }

html[data-theme="dark"] .radarSvg_HAIZ polygon[fill="none"] { stroke: #334155; }
html[data-theme="dark"] .radarSvg_HAIZ line { stroke: #1e293b; }
html[data-theme="dark"] .invContainer_dqFv { background: #5a5a5a; border-color: #1a1a1a; }
html[data-theme="dark"] .invLabel_D4oe { color: #e2e8f0; }
html[data-theme="dark"] .expandHint_mz0U { color: #64748b; border-top-color: #1e293b; }
html[data-theme="dark"] .expandedInv_Z12W { border-top-color: #1e293b; }
html[data-theme="dark"] .invslot-container { background: #1a1d22; border-color: #2d3137; }
html[data-theme="dark"] .invslot { background: #22262b; border-color: #2d3137; box-shadow: none; }
html[data-theme="dark"] .invslot:hover { background: #2a2f35; border-color: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,0.12); }
html[data-theme="dark"] .invslot-stacksize { color: #fff; text-shadow: 2px 2px 0 #000; }

/* ==================== 移动端 ==================== */
@media (max-width: 600px) {
  .dbKpiRow_ffW8, .dbRow_ZGjX { grid-template-columns: 1fr; }
  .dbSpan1_Wbzb, .dbSpan2_tBcZ, .dbSpan3_sQTS, .dbSpan4_imoY { grid-column: span 1; }

  .outer_jeej { padding: 20px 12px 40px; }
  .overviewGrid_OcW9 { grid-template-columns: repeat(2, 1fr); }
  .gameStats_Xend { flex-wrap: wrap; }
  .gameStat_pVhv { min-width: 60px; }
  .pageTitle_fPfW { font-size: 20px; }
  .invslot { width: 28px; height: 28px; }
  .invslot-stacksize { font-size: 9px; }
  .invslot-fallback { font-size: 8px; }
  .invslot-container { padding: 4px; gap: 1px; }
  .invslot-item { padding: 1px; }
}

@media (max-width: 400px) {
  .overviewGrid_OcW9 { grid-template-columns: 1fr; }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.title_f1Hy {
  font-size: 3rem;
}

/**
  Blog post title should be smaller on smaller devices
**/
@media (max-width: 576px) {
  .title_f1Hy {
    font-size: 2rem;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.container_mt6G {
  font-size: 0.9rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .githubSvg_Uu4N {
  fill: var(--light);
}

[data-theme='light'] .githubSvg_Uu4N {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .xSvg_y3PF {
  fill: var(--light);
}

[data-theme='light'] .xSvg_y3PF {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .linkedinSvg_FCgI {
  fill: var(--light);
}

[data-theme='light'] .linkedinSvg_FCgI {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .blueskySvg_AzZw {
  fill: var(--light);
}

[data-theme='light'] .blueskySvg_AzZw {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .instagramSvg_YC40 {
  fill: var(--light);
}

[data-theme='light'] .instagramSvg_YC40 {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

[data-theme='dark'] .threadsSvg_PTXY {
  fill: var(--light);
}

[data-theme='light'] .threadsSvg_PTXY {
  fill: var(--dark);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --docusaurus-blog-social-icon-size: 1rem;
}

.authorSocials_rSDt {
  /*
  This ensures that container takes height even if there's no social link
  This keeps author names aligned even if only some have socials
   */
  height: var(--docusaurus-blog-social-icon-size);

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 0;
  overflow: hidden;
  line-clamp: 1;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.authorSocialLink_owbf {
  height: var(--docusaurus-blog-social-icon-size);
  width: var(--docusaurus-blog-social-icon-size);
  line-height: 0;
  margin-right: 0.4rem;
}

.authorSocialIcon_XYv3 {
  width: var(--docusaurus-blog-social-icon-size);
  height: var(--docusaurus-blog-social-icon-size);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.authorImage_XqGP {
  --ifm-avatar-photo-size: 3.6rem;
}

.author-as-h1_n9oJ .authorImage_XqGP {
  --ifm-avatar-photo-size: 7rem;
}

.author-as-h2_gXvM .authorImage_XqGP {
  --ifm-avatar-photo-size: 5.4rem;
}

.authorDetails_lV9A {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-around;
}

.authorName_yefp {
  font-size: 1.1rem;
  line-height: 1.1rem;
  display: flex;
  flex-direction: row;
}

.author-as-h1_n9oJ .authorName_yefp {
  font-size: 2.4rem;
  line-height: 2.4rem;
  display: inline;
}

.author-as-h2_gXvM .authorName_yefp {
  font-size: 1.4rem;
  line-height: 1.4rem;
  display: inline;
}

.authorTitle_nd0D {
  font-size: 0.8rem;
  line-height: 1rem;
  display: -webkit-box;
  overflow: hidden;
  line-clamp: 1;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.author-as-h1_n9oJ .authorTitle_nd0D {
  font-size: 1.2rem;
  line-height: 1.6rem;
}

.author-as-h2_gXvM .authorTitle_nd0D {
  font-size: 1rem;
  line-height: 1.3rem;
}

.authorBlogPostCount_iiJ5 {
  background: var(--ifm-color-secondary);
  color: var(--ifm-color-black);
  font-size: 0.8rem;
  line-height: 1.2;
  border-radius: var(--ifm-global-radius);
  padding: 0.1rem 0.4rem;
  margin-left: 0.3rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.authorListItem_n3yI {
  list-style-type: none;
  margin-bottom: 2rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.authorCol_Hf19 {
  max-width: inherit !important;
}

.imageOnlyAuthorRow_pa_O {
  display: flex;
  flex-flow: row wrap;
}

.imageOnlyAuthorCol_G86a {
  margin-left: 0.3rem;
  margin-right: 0.3rem;
}

/* ─── Feedback Page ─── */

.fb_outer_yL9q {
  min-height: calc(100vh - 60px);
  padding: 40px 16px;
  background: linear-gradient(180deg, #f7f8fb 0%, #f5f6fa 100%);
  display: flex;
  justify-content: center;
}

.fb_card_Xint {
  width: 100%;
  max-width: 680px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(20, 23, 28, 0.06);
  padding: 36px 40px;
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.fb_title_P5hw {
  font-size: 24px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 4px;
}

.fb_subtitle_cVUQ {
  font-size: 14px;
  color: #7b8794;
  margin: 0 0 28px;
}

/* ── Form ── */
.fb_form_nvrv {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fb_row_UdVJ {
  display: flex;
  gap: 16px;
}

.fb_row_UdVJ .fb_field_ZTVA {
  flex: 1;
}

.fb_field_ZTVA {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fb_label_Yuxt {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
}

.fb_required_X6y8 {
  color: #ef4444;
}

.fb_input_PvFL,
.fb_textarea_lKXA {
  padding: 11px 14px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  font-size: 14px;
  color: #1f2937;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: inherit;
  resize: vertical;
}

.fb_input_PvFL:focus,
.fb_textarea_lKXA:focus {
  border-color: #27ae60;
  box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.1);
}

.fb_textarea_lKXA {
  min-height: 120px;
}

.fb_charCount_P_Hr {
  align-self: flex-end;
  font-size: 12px;
  color: #9ca3af;
}

/* ── Type selector ── */
.fb_typeGroup_eA02 {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.fb_typeBtn_bkfY {
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}

.fb_typeBtn_bkfY:hover {
  border-color: #d1d5db;
  background: #f9fafb;
}

.fb_typeBtnActive_ub29 {
  border-color: #27ae60;
  background: rgba(39, 174, 96, 0.06);
  color: #27ae60;
  font-weight: 600;
}

/* ── Error ── */
.fb_error_H2u7 {
  color: #ef4444;
  font-size: 13px;
  margin: 0;
}

/* ── Submit ── */
.fb_submit_kPmc {
  align-self: flex-start;
  padding: 12px 32px;
  border-radius: 10px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(37, 150, 86, 0.18);
  transition: transform 0.15s, box-shadow 0.15s;
  font-family: inherit;
}

.fb_submit_kPmc:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(37, 150, 86, 0.25);
}

.fb_submit_kPmc:active:not(:disabled) {
  transform: translateY(0);
}

.fb_submit_kPmc:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ── Success ── */
.fb_success_xYfH {
  text-align: center;
  padding: 30px 0;
}

.fb_successIcon_KCdQ {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(39, 174, 96, 0.1);
  color: #27ae60;
  font-size: 28px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.fb_successTitle_LJSW {
  font-size: 20px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 8px;
}

.fb_successText_rKJg {
  font-size: 14px;
  color: #7b8794;
  margin: 0 0 24px;
}

.fb_resetBtn_l8sW {
  padding: 10px 24px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}

.fb_resetBtn_l8sW:hover {
  border-color: #27ae60;
  color: #27ae60;
}

/* ── Dark mode ── */
html[data-theme="dark"] .fb_outer_yL9q {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

html[data-theme="dark"] .fb_card_Xint {
  background: #1e293b;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

html[data-theme="dark"] .fb_title_P5hw {
  color: #f3f4f6;
}

html[data-theme="dark"] .fb_subtitle_cVUQ {
  color: #94a3b8;
}

html[data-theme="dark"] .fb_label_Yuxt {
  color: #e2e8f0;
}

html[data-theme="dark"] .fb_input_PvFL,
html[data-theme="dark"] .fb_textarea_lKXA {
  border: 1px solid #334155;
  background: #0f172a;
  color: #e2e8f0;
}

html[data-theme="dark"] .fb_input_PvFL::placeholder,
html[data-theme="dark"] .fb_textarea_lKXA::placeholder {
  color: #64748b;
}

html[data-theme="dark"] .fb_input_PvFL:focus,
html[data-theme="dark"] .fb_textarea_lKXA:focus {
  border-color: #22c55e;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
}

html[data-theme="dark"] .fb_typeBtn_bkfY {
  border: 1px solid #334155;
  background: #0f172a;
  color: #e2e8f0;
}

html[data-theme="dark"] .fb_typeBtn_bkfY:hover {
  border-color: #475569;
  background: #1e293b;
}

html[data-theme="dark"] .fb_typeBtnActive_ub29 {
  border-color: #22c55e;
  background: rgba(34, 197, 94, 0.1);
  color: #4ade80;
}

html[data-theme="dark"] .fb_charCount_P_Hr {
  color: #64748b;
}

html[data-theme="dark"] .fb_resetBtn_l8sW {
  border: 1px solid #334155;
  background: #0f172a;
  color: #e2e8f0;
}

html[data-theme="dark"] .fb_resetBtn_l8sW:hover {
  border-color: #22c55e;
  color: #4ade80;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .fb_card_Xint {
    padding: 24px 20px;
  }

  .fb_row_UdVJ {
    flex-direction: column;
  }

  .fb_typeGroup_eA02 {
    gap: 6px;
  }

  .fb_typeBtn_bkfY {
    padding: 7px 12px;
    font-size: 12px;
  }
}

/* ==================== 页面背景 ==================== */
.user_cp_outer_ypgB {
  min-height: calc(100vh - 60px);
  padding: 28px 16px;
  background: linear-gradient(180deg, #f7f8fb 0%, #f5f6fa 100%);
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

/* ==================== 多条 Toast 容器 ==================== */
.toastContainer_tDMh {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
  width: 100%;
  max-width: 500px;
  padding: 0 16px;
}

/* 单条 Toast 基础样式 */
.toast_rxiW {
  border-radius: 16px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  position: relative;
  overflow: hidden;
  pointer-events: all;
  margin: 0;
}

/* 进入动画 */
.toastEnter_zntQ {
  animation: toastSlideIn_jN6G 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes toastSlideIn_jN6G {
  from {
    transform: translateY(-100px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* 退出动画 */
.toastLeave_A31b {
  animation: toastSlideOut_TGb5 0.5s cubic-bezier(0.32, 0, 0.67, 0) forwards;
}

@keyframes toastSlideOut_TGb5 {
  to {
    transform: translateY(-100px);
    opacity: 0;
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
    border: 0;
  }
}

/* 四种浅色主题 */
.toast_rxiW.success_XOog   { background: #ecfdf5; color: #166534; border: 1px solid #86efac; }
.toast_rxiW.error_P_BU     { background: #fef2f2; color: #991b1b; border: 1px solid #fca5a5; }
.toast_rxiW.warning_RDdo   { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }
.toast_rxiW.info_K7fX      { background: #eff6ff; color: #1e40af; border: 1px solid #93c5fd; }

/* 图标容器 */
.toastIconWrapper_cccg {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toastIcon_xpF9 {
  width: 36px;
  height: 36px;
}

/* 提示文字 */
.toastMessage_gufQ {
  flex: 1;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  padding-right: 10px;
  word-break: break-all;
}

/* 关闭按钮 */
.toastClose_n_rt {
  background: none;
  border: none;
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  opacity: 0.7;
  transition: all 0.2s;
  margin-left: auto;
}

.toastClose_n_rt:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.1);
}

/* 底部倒计时进度条 */
.toastProgress_YwCb {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.toastProgressBar_mexz {
  height: 100%;
  width: 100%;
  animation: toastCountdown_L0Sz 5s linear forwards;
}

/* 不同类型进度条颜色 */
.toast_rxiW.success_XOog   .toastProgressBar_mexz { background: #22c55e; }
.toast_rxiW.error_P_BU     .toastProgressBar_mexz { background: #ef4444; }
.toast_rxiW.warning_RDdo   .toastProgressBar_mexz { background: #f59e0b; }
.toast_rxiW.info_K7fX      .toastProgressBar_mexz { background: #3b82f6; }

@keyframes toastCountdown_L0Sz {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}

/* ==================== 深色模式适配 ==================== */
html[data-theme="dark"] .toast_rxiW.success_XOog   { background: #052e16; color: #86efac; border-color: #22c55e; }
html[data-theme="dark"] .toast_rxiW.error_P_BU     { background: #450a0a; color: #fca5a5; border-color: #ef4444; }
html[data-theme="dark"] .toast_rxiW.warning_RDdo   { background: #451e0a; color: #fcd34d; border-color: #f59e0b; }
html[data-theme="dark"] .toast_rxiW.info_K7fX      { background: #1e2a44; color: #93c5fd; border-color: #3b82f6; }
html[data-theme="dark"] .toastProgress_YwCb   { background: rgba(255, 255, 255, 0.1); }
html[data-theme="dark"] .toastClose_n_rt:hover { background: rgba(255, 255, 255, 0.15); }

/* ==================== Tab 切换 ==================== */
.tabBar_F4L6 {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
  background: #f1f5f9;
  border-radius: 12px;
  padding: 4px;
}

.tabBtn_MPIM {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 0;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: #64748b;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.tabBtn_MPIM:hover {
  color: #1f2937;
}

.tabActive_KeSg {
  background: #ffffff;
  color: #166534;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-weight: 600;
}

.tabIcon_j7pi {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* 深色模式 Tab */
html[data-theme="dark"] .tabBar_F4L6 {
  background: #0f172a;
}

html[data-theme="dark"] .tabBtn_MPIM {
  color: #64748b;
}

html[data-theme="dark"] .tabBtn_MPIM:hover {
  color: #e2e8f0;
}

html[data-theme="dark"] .tabActive_KeSg {
  background: #1e293b;
  color: #4ade80;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* ==================== 表单区域 ==================== */
.user_cp_container_omv2 {
  width: 100%;
  max-width: 480px;
  padding: 32px 28px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(20, 23, 28, 0.08);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.user_cp_title_CQe1 {
  font-size: 26px;
  font-weight: 700;
  color: #1f2937;
  text-align: center;
  margin: 0 0 20px;
}

.user_cp_form_JbPM {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.user_cp_form_JbPM input {
  padding: 13px 16px;
  border-radius: 12px;
  border: 1.5px solid #eef0f3;
  background: #ffffff;
  font-size: 15px;
  outline: none;
  transition: all 0.2s;
}

.user_cp_form_JbPM input:focus {
  border-color: #34d399;
  box-shadow: 0 0 0 4px rgba(52, 211, 153, 0.15);
}

.user_cp_codeRow_voRd {
  display: flex;
  gap: 12px;
  align-items: center;
}

.user_cp_codeRow_voRd input {
  flex: 1;
}

.user_cp_sendBtn_bWtZ,
.user_cp_submitBtn_znh3 {
  padding: 13px 18px;
  border-radius: 12px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
}

.user_cp_submitBtn_znh3 {
  padding: 14px 0;
  font-size: 16px;
}

.user_cp_sendBtn_bWtZ:disabled,
.user_cp_submitBtn_znh3:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* 深色模式表单适配 */
html[data-theme="dark"] .user_cp_outer_ypgB {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

html[data-theme="dark"] .user_cp_container_omv2 {
  background: #1e293b;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

html[data-theme="dark"] .user_cp_title_CQe1 {
  color: #f3f4f6;
}

html[data-theme="dark"] .user_cp_form_JbPM input {
  background: #1e293b;
  border-color: #334155;
  color: #e2e8f0;
}

html[data-theme="dark"] .user_cp_form_JbPM input::placeholder {
  color: #64748b;
}

html[data-theme="dark"] .user_cp_sendBtn_bWtZ,
html[data-theme="dark"] .user_cp_submitBtn_znh3 {
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  box-shadow: 0 6px 18px rgba(22, 163, 74, 0.35);
}

/* ==================== 移动端适配 ==================== */
@media (max-width: 480px) {
  .toastContainer_tDMh {
    padding: 0 12px;
    gap: 10px;
  }
  .toast_rxiW {
    padding: 16px;
  }
  .user_cp_container_omv2 {
    margin: 0 12px;
    padding: 28px 20px;
  }
  .user_cp_codeRow_voRd {
    flex-direction: column;
  }
  .user_cp_sendBtn_bWtZ {
    width: 100%;
  }
}
/* 下载横幅 */
.tool_rec_studio_appBanner_lSC_ {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, #1e3a5f 0%, #2563eb 100%);
  color: #e0eaff;
  padding: 10px 20px;
  font-size: 13px;
  flex-wrap: wrap;
}

.tool_rec_studio_appBannerIcon_zRyv {
  font-size: 18px;
  flex-shrink: 0;
}

.tool_rec_studio_appBannerText_xqr7 {
  flex: 1;
  min-width: 200px;
}

.tool_rec_studio_appBannerText_xqr7 strong {
  color: #fff;
}

.tool_rec_studio_appBannerBtn_LBkp {
  background: #fff;
  color: #2563eb;
  border: none;
  border-radius: 6px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  -webkit-text-decoration: none;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s;
}

.tool_rec_studio_appBannerBtn_LBkp:hover {
  background: #dbeafe;
}

.tool_rec_studio_appBannerClose_D_Rj {
  background: none;
  border: none;
  color: #93c5fd;
  font-size: 20px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
  flex-shrink: 0;
}

.tool_rec_studio_appBannerClose_D_Rj:hover {
  color: #fff;
}

:root {
  --tool_rec_studio_primary: #2563eb;
  --tool_rec_studio_bg: #f8fafc;
  --tool_rec_studio_text: #334155;
  --tool_rec_studio_border: #cbd5e1;
}

.tool_rec_studio_body_tUcH {
  font-family: system-ui, -apple-system, sans-serif;
  background: var(--tool_rec_studio_bg);
  color: var(--tool_rec_studio_text);
  padding: 20px;
  -webkit-user-select: none;
          user-select: none;
  min-height: calc(100vh - 60px);
}

.tool_rec_studio_appGrid_DP9X {
  display: grid;
  grid-template-columns: 2fr 1.3fr;
  gap: 20px;
  max-width: 950px;
  margin: 0 auto;
}

.tool_rec_studio_panel_Fleg {
  background: white;
  padding: 24px;
  border-radius: 12px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
  border: 1px solid #e2e8f0;
  margin-bottom: 20px;
}

.tool_rec_studio_controlPanel_UpxL {
  display: flex;
  flex-direction: column;
  height: fit-content;
  position: sticky;
  top: 20px;
}

.tool_rec_studio_h3_RfCQ {
  margin: 0 0 16px 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 10px;
}

.tool_rec_studio_controlGrid_rzZS {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.tool_rec_studio_fullRow_A5TC { grid-column: span 2; }

.tool_rec_studio_label_ggsj {
  display: block;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 6px;
  color: #475569;
}

.tool_rec_studio_select_JMVG,
.tool_rec_studio_input_DgLe {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--tool_rec_studio_border);
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
  box-sizing: border-box;
  transition: border 0.2s;
}

.tool_rec_studio_select_JMVG:focus,
.tool_rec_studio_input_DgLe:focus {
  outline: none;
  border-color: var(--tool_rec_studio_primary);
}

/* 复选框组样式 */
.tool_rec_studio_checkboxGroup_C_Pu {
  display: flex;
  gap: 15px;
  align-items: center;
  height: 38px;
}

.tool_rec_studio_checkboxItem_p8bJ {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: #334155;
}

.tool_rec_studio_checkboxItem_p8bJ input {
  width: 16px; 
  height: 16px; 
  margin: 0;
  accent-color: var(--tool_rec_studio_primary);
}

/* 自定义设置面板 */
.tool_rec_studio_customSettings_cn68 {
  background: #f1f5f9;
  padding: 12px;
  border-radius: 8px;
  border: 1px dashed #cbd5e1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: -5px;
}

.tool_rec_studio_btn_jyVx {
  width: 100%;
  padding: 16px;
  font-size: 15px;
  font-weight: bold;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: 0.2s;
  margin-bottom: 12px;
}

.tool_rec_studio_btnStart_OZwF {
  background: var(--tool_rec_studio_primary);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.tool_rec_studio_btnStart_OZwF:hover {
  background: #1d4ed8;
  transform: translateY(-1px);
}

.tool_rec_studio_btnStop_aCgz {
  background: #ef4444;
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.tool_rec_studio_btnStop_aCgz:hover {
  background: #dc2626;
}

.tool_rec_studio_statusBar_GbgI {
  margin-top: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #64748b;
  font-size: 12px;
}

.tool_rec_studio_dot_O6ol {
  width: 8px;
  height: 8px;
  background: #cbd5e1;
  border-radius: 50%;
}

.tool_rec_studio_dotRecording_o8QH {
  background: #ef4444;
  animation: tool_rec_studio_pulse_WuVU 1.5s infinite;
}

@keyframes tool_rec_studio_pulse_WuVU {
  0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; }
}

/* 预览卡片 */
.tool_rec_studio_previewCard_pFoC {
  margin-top: 20px;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  border: 1px solid #333;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.5);
}

.tool_rec_studio_previewCardRecording_Davs {
  border-color: #ef4444;
}

.tool_rec_studio_previewCardRecording_Davs .tool_rec_studio_previewTag_Jr74 span {
  background: #ef4444;
  animation: tool_rec_studio_pulse_WuVU 1s infinite;
}

.tool_rec_studio_previewVideo_XbMI {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

.tool_rec_studio_previewTag_Jr74 {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  padding: 4px 8px;
  border-radius: 4px;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 6px;
  backdrop-filter: blur(4px);
}

.tool_rec_studio_previewTag_Jr74 span {
  width: 6px;
  height: 6px;
  background: #ccc;
  border-radius: 50%;
  display: inline-block;
}

.tool_rec_studio_statOverlay_LnqY {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 10px;
  padding: 4px 10px;
  display: flex;
  justify-content: space-between;
  font-family: monospace;
}

/* Toast 样式 (保持一致) */
.tool_rec_studio_toastContainer_PB54 {
  position: fixed; top: 30px; left: 50%; transform: translateX(-50%);
  z-index: 5000; display: flex; flex-direction: column; gap: 12px; pointer-events: none;
  width: 100%; max-width: 500px; padding: 0 16px;
}

.tool_rec_studio_toast_BYNY {
  border-radius: 12px; padding: 16px 20px; display: flex; align-items: center; gap: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); position: relative; overflow: hidden;
  pointer-events: all; background: #fff; color: #333;
  animation: tool_rec_studio_toastSlideIn_gFON 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

.tool_rec_studio_toastLeave_yIwf {
  animation: tool_rec_studio_toastSlideOut_QSRF 0.4s cubic-bezier(0.32, 0, 0.67, 0) forwards;
}

@keyframes tool_rec_studio_toastSlideIn_gFON { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes tool_rec_studio_toastSlideOut_QSRF { to { transform: translateY(-50px); opacity: 0; } }

.tool_rec_studio_toastSuccess_YVVE { background: #1b4d2e; color: #a5d6a7; border: 1px solid #2e7d32; }
.tool_rec_studio_toastError_G7ZM { background: #4a1b1b; color: #ef9a9a; border: 1px solid #c62828; }
.tool_rec_studio_toastWarning_eUhg { background: #4a3b1b; color: #ffe082; border: 1px solid #ff8f00; }
.tool_rec_studio_toastInfo_U6bV { background: #1b2e4a; color: #90caf9; border: 1px solid #1565c0; }

.tool_rec_studio_toastIconWrapper_wGO8 { width: 24px; height: 24px; flex-shrink: 0; }
.tool_rec_studio_toastIcon_MEO7 { width: 100%; height: 100%; fill: currentColor; }
.tool_rec_studio_toastMessage_ZAOV { flex: 1; font-size: 14px; font-weight: 500; line-height: 1.4; }
.tool_rec_studio_toastClose_oQYk { background: none; border: none; font-size: 20px; cursor: pointer; opacity: 0.6; color: inherit; padding: 0; }

.tool_rec_studio_toastProgress_BnFy { position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: rgba(255, 255, 255, 0.1); }
.tool_rec_studio_toastProgressBar_aMGG { height: 100%; width: 100%; animation: tool_rec_studio_toastCountdown_jCRf 3s linear forwards; }
.tool_rec_studio_toastSuccess_YVVE .tool_rec_studio_toastProgressBar_aMGG { background: #4caf50; }
.tool_rec_studio_toastError_G7ZM .tool_rec_studio_toastProgressBar_aMGG { background: #e57373; }
.tool_rec_studio_toastWarning_eUhg .tool_rec_studio_toastProgressBar_aMGG { background: #ffb74d; }
.tool_rec_studio_toastInfo_U6bV .tool_rec_studio_toastProgressBar_aMGG { background: #64b5f6; }

@keyframes tool_rec_studio_toastCountdown_jCRf { from { transform: translateX(0); } to { transform: translateX(-100%); } }
/* ─────────────────────────────────────────
   NewBlock Homepage — index.module.css
   Aesthetic: Cinematic Dark · Sharp Accents
   Font: Noto Serif SC (display) + DM Sans (body)
───────────────────────────────────────── */

/* ══════════════════════════════════════
   DARK THEME (default)
══════════════════════════════════════ */
:root,
[data-theme='dark'] {
  --nb-accent: #4af0a2;
  --nb-accent-rgb: 74, 240, 162;
  --nb-text: #e8edf5;
  --nb-muted: rgba(232, 237, 245, 0.5);
  --nb-surface: rgba(255, 255, 255, 0.05);
  --nb-border: rgba(255, 255, 255, 0.10);
  --nb-card-hover-bg: rgba(74, 240, 162, 0.06);
  --nb-card-hover-border: rgba(74, 240, 162, 0.35);
  --nb-title: #ffffff;
  --nb-overlay-visible: 1;
  --nb-video-visible: 1;
  --nb-footer-bg: rgba(8, 11, 16, 0.85);
  --nb-footer-border: rgba(255, 255, 255, 0.08);
  --nb-navbar-bg: rgba(8, 11, 16, 0.70);
  --nb-navbar-border: rgba(255, 255, 255, 0.08);
  --nb-icon-color: rgba(74, 240, 162, 0.85);
  --nb-icon-bg: rgba(74, 240, 162, 0.10);
  --nb-radius: 14px;
  --nb-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ══════════════════════════════════════
   LIGHT THEME
══════════════════════════════════════ */
[data-theme='light'] {
  --nb-accent: #0a8f58;
  --nb-accent-rgb: 10, 143, 88;
  --nb-text: #1a2230;
  --nb-muted: rgba(26, 34, 48, 0.55);
  --nb-surface: rgba(255, 255, 255, 0.75);
  --nb-border: rgba(0, 0, 0, 0.09);
  --nb-card-hover-bg: rgba(10, 143, 88, 0.06);
  --nb-card-hover-border: rgba(10, 143, 88, 0.40);
  --nb-title: #0d1520;
  --nb-footer-bg: rgba(245, 247, 250, 0.92);
  --nb-footer-border: rgba(0, 0, 0, 0.08);
  --nb-navbar-bg: rgba(255, 255, 255, 0.80);
  --nb-navbar-border: rgba(0, 0, 0, 0.08);
  --nb-icon-color: #0a8f58;
  --nb-icon-bg: rgba(10, 143, 88, 0.10);
}

/* ── Light theme: video visible with light overlay ── */
[data-theme='light'] .bgVideo_FIu0 {
  display: block;
  opacity: 0.6;
}

[data-theme='light'] .overlay_CDjE {
  display: block;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.35) 0%,
    rgba(255, 255, 255, 0.20) 40%,
    rgba(255, 255, 255, 0.45) 80%,
    rgba(255, 255, 255, 0.85) 100%
  );
}

[data-theme='light'] .main_iUjq {
  background: transparent;
  min-height: 100vh;
}

/* ── Light: badge uses green tint ── */
[data-theme='light'] .badge__JoJ {
  background: rgba(10, 143, 88, 0.10);
  border-color: rgba(10, 143, 88, 0.30);
  color: var(--nb-accent);
}

[data-theme='light'] .dot_K917 {
  background: var(--nb-accent);
  box-shadow: 0 0 8px rgba(10,143,88,0.5);
}

/* ── Light: hero text legible over video ── */
[data-theme='light'] .heroTitle_qg2I {
  text-shadow: 0 2px 20px rgba(255,255,255,0.8);
  color: var(--nb-title);
}

[data-theme='light'] .heroSub_yj39 {
  color: var(--nb-muted);
}

/* ── Light: secondary button ── */
[data-theme='light'] .btnSecondary_mRVh {
  background: rgba(255,255,255,0.90);
  border-color: rgba(0,0,0,0.12);
  color: var(--nb-text);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

[data-theme='light'] .btnSecondary_mRVh:hover {
  background: #fff;
  border-color: rgba(10,143,88,0.40);
  color: var(--nb-accent);
}

/* ── Light: primary button ── */
[data-theme='light'] .btnPrimary_hBjO {
  box-shadow: 0 0 24px rgba(10,143,88,0.20);
}

[data-theme='light'] .btnPrimary_hBjO:hover {
  box-shadow: 0 0 36px rgba(10,143,88,0.30);
}

/* ── Light: section title ── */
[data-theme='light'] .sectionTitle_Ut5p {
  color: var(--nb-title);
}

/* ── Light: card — frosted glass, not pure white ── */
[data-theme='light'] .card_M5pr {
  background: rgba(230, 240, 235, 0.45);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border-color: rgba(10, 143, 88, 0.12);
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

[data-theme='light'] .card_M5pr:hover {
  background: rgba(230, 240, 235, 0.60);
  border-color: rgba(10, 143, 88, 0.25);
  box-shadow: 0 6px 24px rgba(10,143,88,0.12);
}

[data-theme='light'] .cardTitle_tke3 {
  color: var(--nb-title);
}

/* ── Navbar overrides ── */
.navbar {
  background: var(--nb-navbar-bg) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid var(--nb-navbar-border) !important;
  box-shadow: none !important;
}

/* 修复：backdrop-filter 会创建新的层叠上下文，
   导致移动端侧边栏被主页内容覆盖。
   侧边栏打开时移除 backdrop-filter，关闭后恢复。 */
.navbar.navbar-sidebar--show {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

[data-theme='dark'] .navbar__brand,
[data-theme='dark'] .navbar__title,
[data-theme='dark'] .navbar__link,
[data-theme='dark'] .navbar__item,
[data-theme='dark'] .navbar-sidebar__brand {
  color: #e8edf5 !important;
}

[data-theme='dark'] .navbar__link:hover,
[data-theme='dark'] .navbar__link--active {
  color: #4af0a2 !important;
}

[data-theme='dark'] .navbar__toggle,
[data-theme='dark'] .navbar__toggle svg {
  color: #e8edf5 !important;
  stroke: #e8edf5 !important;
}

/* Fallback (no data-theme attr yet on first paint) */
.navbar__brand,
.navbar__title,
.navbar__link,
.navbar__item,
.navbar-sidebar__brand {
  color: rgb(0, 0, 0) !important;
}
.navbar__link:hover,
.navbar__link--active {
  color: #049916 !important;
}
.navbar__toggle,
.navbar__toggle svg {
  color: #000 !important;
  stroke: #000 !important;
}

/* ── Background Video ── */
.bgVideo_FIu0 {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  transform: translateY(35px); /* 往下偏移视频 */
}

.overlay_CDjE {
  position: fixed;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    rgba(8,11,16,0.55) 0%,
    rgba(8,11,16,0.30) 40%,
    rgba(8,11,16,0.75) 80%,
    rgba(8,11,16,0.97) 100%
  );
}

/* ── Main wrapper ── */
.main_iUjq {
  position: relative;
  z-index: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1.5rem 4rem;
  font-family: 'DM Sans', sans-serif;
  color: var(--nb-text);
  opacity: 1;
  transform: translateY(0);
  animation: mainIn_Ns4n 0.7s ease;
}
@keyframes mainIn_Ns4n {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── HERO ── */
.hero_aEcG {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: clamp(100px, 18vh, 160px);
  gap: 1.2rem;
  max-width: 720px;
  width: 100%;
}

.badge__JoJ {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(74, 240, 162, 0.10);
  border: 1px solid rgba(74, 240, 162, 0.30);
  border-radius: 999px;
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: var(--nb-accent);
}

.dot_K917 {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nb-accent);
  box-shadow: 0 0 8px var(--nb-accent);
  animation: pulse_vKli 2s ease-in-out infinite;
  flex-shrink: 0;
}

@keyframes pulse_vKli {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.6; transform: scale(1.35); }
}

.heroTitle_qg2I {
  font-family: 'Noto Serif SC', serif;
  font-size: clamp(54px, 10vw, 100px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--nb-title);
  margin: 0;
  text-shadow: 0 2px 40px rgba(0,0,0,0.6);
}

.heroTitleAccent_D_mc {
  color: var(--nb-accent);
}

.heroSub_yj39 {
  font-size: clamp(15px, 2.2vw, 19px);
  font-weight: 300;
  color: var(--nb-muted);
  margin: 0;
  letter-spacing: 0.04em;
}

.heroCta_uiG7 {
  display: flex;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 0.5rem;
}

/* Primary button */
.btnPrimary_hBjO {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: var(--nb-radius);
  background: var(--nb-accent);
  color: #080b10;
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: var(--nb-transition);
  box-shadow: 0 0 28px rgba(var(--nb-accent-rgb), 0.25);
  position: relative;
  overflow: hidden;
}

.btnPrimary_hBjO::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.2), transparent);
  opacity: 0;
  transition: opacity 0.3s;
}

.btnPrimary_hBjO:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 40px rgba(var(--nb-accent-rgb), 0.40);
  color: #080b10;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.btnPrimary_hBjO:hover::after { opacity: 1; }

.btnSub_jpJ3 {
  font-size: 11px;
  font-weight: 400;
  opacity: 0.65;
  margin-left: 2px;
  white-space: nowrap;
}

/* Secondary button */
.btnSecondary_mRVh {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 24px;
  border-radius: var(--nb-radius);
  background: var(--nb-surface);
  border: 1px solid var(--nb-border);
  color: var(--nb-text);
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 400;
  -webkit-text-decoration: none;
  text-decoration: none;
  backdrop-filter: blur(8px);
  transition: var(--nb-transition);
}

.btnSecondary_mRVh:hover {
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.25);
  color: #fff;
  -webkit-text-decoration: none;
  text-decoration: none;
}

/* ── FEATURES ── */
.features_cAfv {
  width: 100%;
  max-width: 1080px;
  margin-top: clamp(60px, 10vh, 110px);
}

.sectionTitle_Ut5p {
  text-align: center;
  font-family: 'Noto Serif SC', serif;
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 700;
  color: var(--nb-title);
  margin-bottom: 2.5rem;
  letter-spacing: 0.02em;
}

.grid_VHx4 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

@media (max-width: 768px) {
  .grid_VHx4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .grid_VHx4 { grid-template-columns: 1fr; }
  .card_M5pr { padding: 1.4rem 1.2rem; }
}

.card_M5pr {
  background: var(--nb-surface);
  border: 1px solid var(--nb-border);
  border-radius: var(--nb-radius);
  padding: 1.8rem 1.5rem;
  backdrop-filter: blur(12px);
  transition: var(--nb-transition);
  cursor: default;
  animation: fadeUp_LJ2A 0.6s ease both;
}

@keyframes fadeUp_LJ2A {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.card_M5pr:hover {
  border-color: var(--nb-card-hover-border);
  background: var(--nb-card-hover-bg);
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}

/* ── Card SVG icon ── */
.cardIcon_I6MN {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--nb-icon-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--nb-icon-color);
  transition: var(--nb-transition);
}

.cardIcon_I6MN svg {
  width: 22px;
  height: 22px;
}

.card_M5pr:hover .cardIcon_I6MN {
  background: rgba(var(--nb-accent-rgb), 0.18);
  transform: scale(1.08);
}

.cardTitle_tke3 {
  font-family: 'DM Sans', sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--nb-title);
  margin: 0 0 0.4rem;
}

.cardDesc_dDVo {
  font-size: 14px;
  color: var(--nb-muted);
  line-height: 1.6;
  margin: 0;
}

/* ── FOOTER ── */
.footer_odxa {
  width: 100%;
  border-top: 1px solid var(--nb-footer-border);
  background: var(--nb-footer-bg);
  backdrop-filter: blur(10px);
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  color: var(--nb-muted);
}

.footerDivider_vR8I {
  opacity: 0.35;
}

.footerRight_IJ5T {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

.footerLink_qG8W {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  opacity: 0.85;
  transition: opacity 0.2s ease, color 0.2s ease;
}

.footerLink_qG8W:hover {
  opacity: 1;
  color: var(--nb-accent);
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

@media (max-width: 600px) {
  .hero_aEcG { padding-top: 80px; }
  .btnPrimary_hBjO, .btnSecondary_mRVh { width: 100%; justify-content: center; }
  .heroCta_uiG7 { flex-direction: column; width: 100%; }
}
/* ==================== 页面背景 ==================== */
.outer_Fe20 {
  min-height: calc(100vh - 60px);
  padding: 40px 20px;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(46,133,85,0.08) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(46,133,85,0.04) 0%, transparent 60%),
    linear-gradient(180deg, #f8fafb 0%, #f0f2f5 100%);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 64px;
}

/* ==================== Toast ==================== */
.toastContainer_LXyA {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
  z-index: 9999; display: flex; flex-direction: column; gap: 10px;
  pointer-events: none; width: 100%; max-width: 460px; padding: 0 16px;
}

.toast_E2gG {
  border-radius: 14px; padding: 16px 18px;
  display: flex; align-items: center; gap: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  position: relative; overflow: hidden; pointer-events: all;
}

.toastEnter_WqM3 { animation: slideIn_yeqX 0.45s cubic-bezier(0.68,-0.55,0.265,1.55) forwards; }
.toastLeave_HDZa { animation: slideOut_eSRk 0.4s cubic-bezier(0.32,0,0.67,0) forwards; }

@keyframes slideIn_yeqX  { from { transform: translateY(-80px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes slideOut_eSRk { to { transform: translateY(-80px); opacity: 0; height: 0; padding: 0; margin: 0; border: 0; } }

.toast_E2gG.success_yk1g { background: #ecfdf5; color: #166534; border: 1px solid #86efac; }
.toast_E2gG.error_omlJ   { background: #fef2f2; color: #991b1b; border: 1px solid #fca5a5; }
.toast_E2gG.warning_dB5O { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }
.toast_E2gG.info_dNoz    { background: #eff6ff; color: #1e40af; border: 1px solid #93c5fd; }

.toastIconWrapper_MbCp { flex-shrink: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; }
.toastIcon_Xq7w        { width: 32px; height: 32px; }
.toastMessage_g9ND     { flex: 1; font-size: 14px; font-weight: 500; line-height: 1.45; }
.toastClose_TCod       { background: none; border: none; font-size: 24px; line-height: 1; cursor: pointer; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; opacity: 0.55; transition: all 0.2s; }
.toastClose_TCod:hover { opacity: 1; background: rgba(0,0,0,0.08); }
.toastProgress_KOBD    { position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: rgba(0,0,0,0.06); overflow: hidden; }
.toastProgressBar_JXLZ { height: 100%; width: 100%; animation: barShrink_uJs6 5s linear forwards; }
.toast_E2gG.success_yk1g .toastProgressBar_JXLZ { background: #22c55e; }
.toast_E2gG.error_omlJ   .toastProgressBar_JXLZ { background: #ef4444; }
.toast_E2gG.warning_dB5O .toastProgressBar_JXLZ { background: #f59e0b; }
.toast_E2gG.info_dNoz    .toastProgressBar_JXLZ { background: #3b82f6; }

@keyframes barShrink_uJs6 { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* ==================== 卡片容器 ==================== */
.card_begD {
  width: 100%; max-width: 440px;
  background: #fff; border-radius: 20px;
  box-shadow:
    0 1px 3px rgba(0,0,0,0.04),
    0 8px 32px rgba(20,23,28,0.07);
  overflow: hidden;
}

/* ==================== 卡片头部 ==================== */
.header_RsnJ {
  padding: 36px 32px 0;
  text-align: center;
}

.brandIcon_qkHt {
  width: 48px; height: 48px; margin: 0 auto 16px;
  border-radius: 14px;
  background: linear-gradient(135deg, #27ae60 0%, #1db954 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(39,174,96,0.25);
}

.brandIcon_qkHt svg { width: 28px; height: 28px; color: #fff; }

.title_SOJG {
  font-size: 22px; font-weight: 700;
  color: #1a1a2e; margin: 0 0 6px;
  letter-spacing: -0.3px;
}

.subtitle_vAVo {
  font-size: 13px; color: #94a3b8; font-weight: 400;
  margin: 0 0 10px;
}

/* ==================== Tab 栏 — 三合一 ==================== */
.tabRow_K4pQ {
  display: flex; gap: 4px;
  margin: 0 32px 28px;
  background: #f1f5f9; border-radius: 13px; padding: 5px;
}

.tab_vjaf {
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  padding: 11px 0; border: none; border-radius: 10px;
  background: transparent; color: #64748b;
  font-size: 13.5px; font-weight: 500;
  cursor: pointer; transition: all 0.2s;
  white-space: nowrap;
}

.tab_vjaf:hover  { color: #334155; }
.tabActive_AROM  { background: #fff; color: #166534; font-weight: 600; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
.tabIcon_XUkK    { width: 15px; height: 15px; flex-shrink: 0; }

/* ==================== 表单区 ==================== */
.form_nOtC {
  padding: 0 32px 36px;
  display: flex; flex-direction: column; gap: 14px;
}

.inputGroup_s8pQ {
  position: relative;
}

.inputGroup_s8pQ input {
  width: 100%; padding: 13px 16px;
  border-radius: 12px;
  border: 1.5px solid #e8ecf1;
  background: #fafbfc;
  font-size: 14.5px; color: #1e293b;
  outline: none; transition: all 0.2s;
  box-sizing: border-box;
}

.inputGroup_s8pQ input::placeholder { color: #94a3b8; }
.inputGroup_s8pQ input:focus {
  border-color: #34d399;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(52,211,153,0.10);
}

/* 验证码行 */
.codeRow_AM6H {
  display: flex; gap: 10px;
}

.codeRow_AM6H .inputGroup_s8pQ { flex: 1; }

.sendBtn_W8bF {
  padding: 0 18px; border-radius: 12px;
  background: #f1f5f9; color: #475569;
  font-size: 13px; font-weight: 600;
  border: 1.5px solid #e8ecf1;
  cursor: pointer; transition: all 0.2s;
  white-space: nowrap; flex-shrink: 0;
  min-width: 100px; text-align: center;
}

.sendBtn_W8bF:hover:not(:disabled) {
  background: #e2e8f0; color: #1e293b;
}

.sendBtn_W8bF:disabled { opacity: 0.5; cursor: not-allowed; }

/* 提交按钮 */
.submitBtn_ATg6 {
  width: 100%; padding: 14px 0;
  border-radius: 13px; border: none;
  background: linear-gradient(135deg, #27ae60 0%, #1db954 100%);
  color: #fff; font-size: 15px; font-weight: 600;
  cursor: pointer; transition: all 0.2s;
  box-shadow: 0 4px 14px rgba(39,174,96,0.25);
  letter-spacing: 0.3px;
}

.submitBtn_ATg6:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(39,174,96,0.35);
}

.submitBtn_ATg6:active:not(:disabled) { transform: translateY(0); }
.submitBtn_ATg6:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }

/* 底部提示 */
.hint_NX6g {
  text-align: center; font-size: 12.5px; color: #94a3b8;
  padding-top: 4px;
}

.hint_NX6g a { color: #27ae60; -webkit-text-decoration: none; text-decoration: none; font-weight: 600; }
.hint_NX6g a:hover { -webkit-text-decoration: underline; text-decoration: underline; }

/* ==================== 登录后用户中心卡片 ==================== */
.profileSection_uYsa {
  padding: 32px;
  text-align: center;
}

.avatar_n4kx {
  width: 72px; height: 72px; margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #27ae60 0%, #1db954 100%);
  color: #fff; font-size: 30px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 24px rgba(39,174,96,0.3);
}

.playerName_KrAC {
  font-size: 20px; font-weight: 700; color: #1a1a2e; margin-bottom: 6px;
}

.badge_SzKB {
  display: inline-block; font-size: 12px; font-weight: 600;
  color: #16a34a; background: #ecfdf5;
  padding: 4px 14px; border-radius: 20px;
  border: 1px solid #bbf7d0; margin-bottom: 24px;
}

.pwdForm_u8PW {
  display: flex; flex-direction: column; gap: 12px;
}

.pwdForm_u8PW input {
  width: 100%; padding: 13px 16px;
  border-radius: 12px;
  border: 1.5px solid #e8ecf1;
  background: #fafbfc;
  font-size: 14.5px; color: #1e293b;
  outline: none; transition: all 0.2s;
  box-sizing: border-box;
}

.pwdForm_u8PW input::placeholder { color: #94a3b8; }
.pwdForm_u8PW input:focus {
  border-color: #34d399; background: #fff;
  box-shadow: 0 0 0 4px rgba(52,211,153,0.10);
}

.pwdHint_cK3o {
  font-size: 12.5px; color: #f59e0b; text-align: center;
  padding: 6px 0 2px; font-weight: 500;
}

.actions_PcYx {
  display: flex; gap: 10px;
}

.actions_PcYx .submitBtn_ATg6 { flex: 2; }
.actions_PcYx .cancelBtn_lIDf  { flex: 1; }

.cancelBtn_lIDf {
  padding: 14px 0; border-radius: 13px;
  background: transparent; color: #64748b;
  font-size: 14px; font-weight: 500;
  border: 1.5px solid #e8ecf1;
  cursor: pointer; transition: all 0.2s;
}

.cancelBtn_lIDf:hover { background: #f8fafc; color: #334155; }

.logoutLink_hwxM {
  display: inline-block; margin-top: 20px;
  font-size: 13px; color: #94a3b8; cursor: pointer;
  background: none; border: none; padding: 6px 16px;
  border-radius: 8px; transition: all 0.2s;
}

.logoutLink_hwxM:hover { color: #ef4444; background: #fef2f2; }

/* ==================== 深色模式 ==================== */
html[data-theme="dark"] .outer_Fe20 {
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(37,194,160,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(37,194,160,0.03) 0%, transparent 60%),
    linear-gradient(180deg, #0f172a 0%, #0c1320 100%);
}

html[data-theme="dark"] .card_begD  { background: #1a2332; box-shadow: 0 8px 32px rgba(0,0,0,0.4); }
html[data-theme="dark"] .title_SOJG { color: #e2e8f0; }

html[data-theme="dark"] .tabRow_K4pQ { background: #111827; }
html[data-theme="dark"] .tab_vjaf     { color: #64748b; }
html[data-theme="dark"] .tab_vjaf:hover     { color: #94a3b8; }
html[data-theme="dark"] .tabActive_AROM     { background: #1e293b; color: #4ade80; }

html[data-theme="dark"] .inputGroup_s8pQ input,
html[data-theme="dark"] .pwdForm_u8PW   input {
  background: #111827; border-color: #1e293b; color: #e2e8f0;
}
html[data-theme="dark"] .inputGroup_s8pQ input:focus,
html[data-theme="dark"] .pwdForm_u8PW   input:focus {
  background: #1a2332; border-color: #34d399;
}

html[data-theme="dark"] .sendBtn_W8bF       { background: #111827; border-color: #1e293b; color: #94a3b8; }
html[data-theme="dark"] .sendBtn_W8bF:hover:not(:disabled) { background: #1e293b; color: #e2e8f0; }

html[data-theme="dark"] .submitBtn_ATg6     { box-shadow: 0 4px 14px rgba(34,197,94,0.2); }
html[data-theme="dark"] .submitBtn_ATg6:hover:not(:disabled) { box-shadow: 0 6px 20px rgba(34,197,94,0.3); }

html[data-theme="dark"] .hint_NX6g a        { color: #4ade80; }
html[data-theme="dark"] .playerName_KrAC    { color: #e2e8f0; }
html[data-theme="dark"] .badge_SzKB         { background: #052e16; color: #4ade80; border-color: #166534; }
html[data-theme="dark"] .cancelBtn_lIDf     { border-color: #1e293b; color: #64748b; }
html[data-theme="dark"] .cancelBtn_lIDf:hover { background: #111827; color: #94a3b8; }
html[data-theme="dark"] .logoutLink_hwxM    { color: #64748b; }
html[data-theme="dark"] .logoutLink_hwxM:hover { color: #fca5a5; background: #450a0a; }

html[data-theme="dark"] .toast_E2gG.success_yk1g { background: #052e16; color: #86efac; border-color: #22c55e; }
html[data-theme="dark"] .toast_E2gG.error_omlJ   { background: #450a0a; color: #fca5a5; border-color: #ef4444; }
html[data-theme="dark"] .toast_E2gG.warning_dB5O { background: #451e0a; color: #fcd34d; border-color: #f59e0b; }
html[data-theme="dark"] .toast_E2gG.info_dNoz    { background: #1e2a44; color: #93c5fd; border-color: #3b82f6; }

/* ==================== 移动端 ==================== */
@media (max-width: 480px) {
  .outer_Fe20      { padding: 20px 12px; padding-top: 32px; align-items: flex-start; }
  .header_RsnJ     { padding: 28px 24px 0; }
  .tabRow_K4pQ     { margin: 0 24px 24px; }
  .tab_vjaf        { font-size: 12.5px; padding: 10px 0; gap: 4px; }
  .tabIcon_XUkK    { width: 14px; height: 14px; }
  .form_nOtC       { padding: 0 24px 28px; }
  .codeRow_AM6H    { flex-direction: column; }
  .sendBtn_W8bF    { padding: 13px 0; min-width: 0; width: 100%; }
  .profileSection_uYsa { padding: 24px; }
}

.rank_duel_outer_otYH {
  min-height: calc(100vh - 60px);
  padding: 28px 16px;
  background: linear-gradient(180deg, #f7f8fb 0%, #f5f6fa 100%);
}

.rank_duel_container_I42u {
  max-width: 1500px;
  margin: 28px auto;
  padding: 22px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(20,23,28,0.06);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  position: relative;
}

.rank_duel_headerRow_D4Qk {
  margin-bottom: 12px;
}

/* 标题 */
.rank_duel_title_PjF1 {
  font-size: 24px;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
  text-align: leaf;
}

/* 空/加载/错误状态（居中） */
.rank_duel_empty_B3DD,
.rank_duel_error_M1ln {
  padding: 28px;
  text-align: center;
  color: #7b8794;
  font-size: 15px;
}

/* 错误显眼 */
.rank_duel_error_M1ln {
  color: #e65151;
  font-weight: 600;
}

/* 表格包装（卡片） */
.rank_duel_tableWrapper_zFM1 {
  margin-top: 6px;
  overflow: auto;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(16,24,40,0.04);
  padding: 10px;
}

/* 表格基础样式 */
.rank_duel_table_Iveb {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  color: #1f2937;
  min-width: 100px;
  display: table !important;
}

.rank_duel_table_Iveb thead {
  background: #fbfbfb;
  position: sticky;
  top: 0;
  z-index: 2;
}

.rank_duel_table_Iveb th,
.rank_duel_table_Iveb td {
  padding: 10px 12px;
  font-size: 13px;
  border-bottom: 1px solid #f0f2f5;
  vertical-align: middle; /* 确保垂直居中 */
  text-align: center;
  box-sizing: border-box;
  word-break: break-word;
}

.rank_duel_table_Iveb th {
  font-weight: 700;
  color: #334155;
}

/* 行 hover 效果 */
.rank_duel_table_Iveb tbody tr:hover td {
  background: #fbfeff;
}

/* 交替行色 */
.rank_duel_table_Iveb tbody tr:nth-child(even) {
  background: #ffffff;
}

/* 玩家列（头像 + 名称） */
.rank_duel_player_gfGS {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: flex-start;
  text-align: left;
  padding-left: 12px;
  min-width: 0;
}

.rank_duel_avatar_PowS {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  flex-shrink: 0;
  border: 1px solid rgba(16,24,40,0.04);
}

.rank_duel_nameWrap_FAjd {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.rank_duel_name_JTUW {
  font-weight: 700;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.rank_duel_sub_pRvD {
  font-size: 12px;
  color: #6b7280;
}

/* 居中单元格辅助 */
.rank_duel_centerCell_ctNy {
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #334155;
  font-weight: 600;
}

/* 原因/描述类列 */
.rank_duel_desc_gPA7 {
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 冠军/前几名样式 */
.rank_duel_gold_sUIf {
  background: linear-gradient(90deg, #f7e29f, #ffffff) !important;
  font-weight: 700;
}

.rank_duel_silver_NuwU {
  background: linear-gradient(90deg, #bfd4eb, #ffffff) !important;
  font-weight: 700;
}

.rank_duel_bronze_bHYL {
  background: linear-gradient(90deg, #f1d0b7, #ffffff) !important;
  font-weight: 700;
}

/* loader 覆盖层（与封禁页样式一致） */
.rank_duel_loader_q7nK {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 1200;
}

.rank_duel_loaderBox_nts8 {
  min-width: 160px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 8px 26px rgba(16,24,40,0.12);
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: auto;
}

.rank_duel_loaderDots_WPNA {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 46px;
  justify-content: center;
}

.rank_duel_loaderDots_WPNA span {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #27ae60;
  transform-origin: center;
  animation: rank_duel_dot_kSzr 1s infinite ease-in-out;
  opacity: 0.95;
}

.rank_duel_loaderDots_WPNA span:nth-child(2) {
  animation-delay: 0.12s;
}
.rank_duel_loaderDots_WPNA span:nth-child(3) {
  animation-delay: 0.24s;
}

@keyframes rank_duel_dot_kSzr {
  0% { transform: translateY(0) scale(0.9); opacity: 0.6; }
  50% { transform: translateY(-6px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.6; }
}

.rank_duel_loaderText_CGlU {
  font-size: 14px;
  color: #111827;
  font-weight: 600;
}

/* 响应式：在窄屏时表格横向滚动并优化显示 */
@media (max-width: 980px) {
  .rank_duel_container_I42u { padding: 16px; }
  .rank_duel_table_Iveb { min-width: 900px; }
  .rank_duel_name_JTUW { max-width: 160px; }
}

@media (max-width: 640px) {
  .rank_duel_container_I42u { padding: 12px; border-radius: 10px; }
  .rank_duel_table_Iveb th, .rank_duel_table_Iveb td { padding: 8px 10px; font-size: 12px; }
  .rank_duel_table_Iveb { min-width: 760px; }
  .rank_duel_name_JTUW { max-width: 120px; }
}




/* 在 duel.module.css 中添加以下样式 */

/* 搜索区 */
.rank_duel_headerRow_D4Qk {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.rank_duel_searchRow_c1m8 {
  display: flex;
  gap: 12px;
  align-items: center;
}

.rank_duel_input_ZpF5 {
  flex: 1;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #eef0f3;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  font-size: 14px;
  outline: none;
  transition: box-shadow 0.16s, border-color 0.16s, transform 0.08s;
}

.rank_duel_input_ZpF5:focus {
  border-color: #6ee7b7;
  box-shadow: 0 6px 18px rgba(30, 180, 100, 0.08);
}

.rank_duel_button_mzEN {
  padding: 10px 16px;
  border-radius: 10px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-weight: 600;
  border: none;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(37, 150, 86, 0.14);
  transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s;
}

.rank_duel_button_mzEN:active {
  transform: translateY(1px) scale(0.995);
}

.rank_duel_button_mzEN:hover {
  filter: brightness(1.03);
}

/* 分页 */
.rank_duel_pagination_dkkt {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding-top: 6px;
}

.rank_duel_pageButton_UT9c {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #e8eaed;
  background: white;
  cursor: pointer;
  font-weight: 600;
  transition: transform 0.12s ease, background-color 0.12s;
}

.rank_duel_pageButton_UT9c:disabled {
  opacity: 0.46;
  cursor: not-allowed;
}

.rank_duel_pageInfo_b2ks {
  color: #475569;
  font-weight: 600;
}







/* 深色模式适配 完整覆盖 */
html[data-theme="dark"] .rank_duel_outer_otYH {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}
html[data-theme="dark"] .rank_duel_container_I42u {
  background: #1e293b;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
html[data-theme="dark"] .rank_duel_title_PjF1 {
  color: #f3f4f6;
}
html[data-theme="dark"] .rank_duel_empty_B3DD,
html[data-theme="dark"] .rank_duel_error_M1ln {
  color: #cbd5e1;
}
html[data-theme="dark"] .rank_duel_error_M1ln {
  color: #f87171;
}
html[data-theme="dark"] .rank_duel_tableWrapper_zFM1 {
  background: #1e293b;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
}
html[data-theme="dark"] .rank_duel_table_Iveb {
  color: #e2e8f0; /* 主文本色 */
}
html[data-theme="dark"] .rank_duel_table_Iveb thead {
  background: #334155;
}
html[data-theme="dark"] .rank_duel_table_Iveb th {
  color: #e2e8f0;
}
html[data-theme="dark"] .rank_duel_table_Iveb td {
  border-bottom: 1px solid #334155;
}
html[data-theme="dark"] .rank_duel_table_Iveb tbody tr:hover td {
  background: #475569; /* hover 的背景稍亮一点 */
}
html[data-theme="dark"] .rank_duel_table_Iveb tbody tr:nth-child(even) {
  background: #1e293b;
}
html[data-theme="dark"] .rank_duel_table_Iveb tbody tr:nth-child(odd) {
  background: #273449; /* 奇数行的深色 */
}
html[data-theme="dark"] .rank_duel_player_gfGS {
  /* 玩家列里的文字颜色等 */
  /* 头像边框也要暗色或透明 */
}
html[data-theme="dark"] .rank_duel_avatar_PowS {
  border: 1px solid rgba(255,255,255,0.1);
}
html[data-theme="dark"] .rank_duel_name_JTUW {
  color: #f8fafc;
}
html[data-theme="dark"] .rank_duel_sub_pRvD {
  color: #94a3b8;
}
html[data-theme="dark"] .rank_duel_centerCell_ctNy {
  color: #e2e8f0;
}
html[data-theme="dark"] .rank_duel_input_ZpF5 {
  border: 1px solid #334155;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  color: #e2e8f0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
html[data-theme="dark"] .rank_duel_input_ZpF5::placeholder {
  color: #64748b;
}
html[data-theme="dark"] .rank_duel_button_mzEN {
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.4);
  color: #ffffff;
}
html[data-theme="dark"] .rank_duel_pagination_dkkt {
  /* 分页整体背景不用变，如果有背景的话 */
}
html[data-theme="dark"] .rank_duel_pageButton_UT9c {
  background: #334155;
  border: 1px solid #475569;
  color: #e2e8f0;
}
html[data-theme="dark"] .rank_duel_pageButton_UT9c:disabled {
  opacity: 0.5;
  color: #64748b;
}
html[data-theme="dark"] .rank_duel_pageInfo_b2ks {
  color: #cbd5e1;
}
html[data-theme="dark"] .rank_duel_gold_sUIf {
  background: linear-gradient(90deg, #a7790f, #334155) !important;
  /* 或者使用暗金色渐变 */
  font-weight: 700;
}
html[data-theme="dark"] .rank_duel_silver_NuwU {
  background: linear-gradient(90deg, #64748b, #1e293b) !important;
  font-weight: 700;
}
html[data-theme="dark"] .rank_duel_bronze_bHYL {
  background: linear-gradient(90deg, #7c4a2f, #1e293b) !important;
  font-weight: 700;
}
html[data-theme="dark"] .rank_duel_loaderBox_nts8 {
  background: rgba(30, 41, 59, 0.96);
  box-shadow: 0 8px 26px rgba(0,0,0,0.5);
}
html[data-theme="dark"] .rank_duel_loaderText_CGlU {
  color: #f3f4f6;
}
/* loader dots 保持绿色或略暗，让对比明显 */
html[data-theme="dark"] .rank_duel_loaderDots_WPNA span {
  background: #22c55e;
}


.tool_resourcepacks_totem_page_BKBN {
    position: fixed;
    padding: 20px;
    top: 1;
    width: 100%;
    height: 100%;
    background: url(/assets/images/bg-0d9fabcaeee50034373dd6babca4c0c7.webp) no-repeat center center fixed;
    background-size: cover;
}

[data-theme="dark"] .tool_resourcepacks_totem_page_BKBN {
    background: url(/assets/images/bg-dark-a91efca44d493d848b88744d1f0bc224.webp) no-repeat center center fixed;
    background-size: cover;
}

.tool_resourcepacks_totem_container_h74p {
    background: rgba(255, 255, 255, 0.85);
    border-radius: 10px;
    padding: 2rem;
    box-shadow: 0 2px 15px rgba(0,0,0,0.1);
    max-width: 800px;
    overflow: hidden;
    margin: auto;
}

[data-theme="dark"] .tool_resourcepacks_totem_container_h74p {
    background: rgba(30, 30, 30, 0.85);
    box-shadow: 0 2px 15px rgba(0,0,0,0.3);
}

.tool_resourcepacks_totem_h1_JvwF {
    color: #2c3e50;
    border-bottom: 2px solid #3498db;
    padding-bottom: 0.5rem;
}

[data-theme="dark"] .tool_resourcepacks_totem_h1_JvwF {
    color: #d1d5db;
    border-bottom: 2px solid #60a5fa;
}

.tool_resourcepacks_totem_error_PMNH {
    color: #e74c3c;
    padding: 1rem;
    background: #f8d7da;
    border-radius: 5px;
    margin: 1rem 0;
}

[data-theme="dark"] .tool_resourcepacks_totem_error_PMNH {
    color: #f87171;
    background: #4b1c1c;
}

.tool_resourcepacks_totem_uploadBox_G8dm {
    border: 2px dashed #3498db;
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
    margin: 2rem 0;
    transition: all 0.3s;
}

[data-theme="dark"] .tool_resourcepacks_totem_uploadBox_G8dm {
    border-color: #60a5fa;
}

.tool_resourcepacks_totem_fileInput_qqwh {
    margin: 1rem 0;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
    width: 80%;
}

[data-theme="dark"] .tool_resourcepacks_totem_fileInput_qqwh {
    border-color: #4b5563;
    color: #d1d5db;
    background: #1f2937;
}

.tool_resourcepacks_totem_requirements_F1GY {
    color: #7f8c8d;
    font-size: 0.9rem;
    margin-top: 1rem;
}

[data-theme="dark"] .tool_resourcepacks_totem_requirements_F1GY {
    color: #9ca3af;
}

.tool_resourcepacks_totem_linkButtons_Xl_S {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 2rem;
}

.tool_resourcepacks_totem_linkTitle_a84n {
    font-weight: bold;
    color: #2c3e50;
}

[data-theme="dark"] .tool_resourcepacks_totem_linkTitle_a84n {
    color: #d1d5db;
}

.tool_resourcepacks_totem_linkButtons_Xl_S a {
    background: #ecf0f1;
    color: #2c3e50;
    padding: 8px 15px;
    border-radius: 8px;
    -webkit-text-decoration: none;
    text-decoration: none;
    border: 1px solid #bdc3c7;
    transition: 0.3s;
}

[data-theme="dark"] .tool_resourcepacks_totem_linkButtons_Xl_S a {
    background: #374151;
    color: #d1d5db;
    border: 1px solid #4b5563;
}

.tool_resourcepacks_totem_linkButtons_Xl_S a:hover {
    background: #3498db;
    color: white;
    border: 1px solid #2980b9;
}

[data-theme="dark"] .tool_resourcepacks_totem_linkButtons_Xl_S a:hover {
    background: #60a5fa;
    border: 1px solid #3b82f6;
}

.tool_resourcepacks_totem_button_oKH9 {
    min-width: 145px;
    transition: all 0.3s;
}

.tool_resourcepacks_totem_uploadArea_RdBi {
    width: 450px;
    height: 220px;
    border: 2px dashed #8e44ad;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin: 15px auto;
    text-align: center;
    color: #666;
    transition: all 0.3s;
    flex-direction: column;
}

[data-theme="dark"] .tool_resourcepacks_totem_uploadArea_RdBi {
    border-color: #a855f7;
    color: #d1d5db;
}

.tool_resourcepacks_totem_uploadArea_RdBi:hover {
    background: #f8f0ff;
}

[data-theme="dark"] .tool_resourcepacks_totem_uploadArea_RdBi:hover {
    background: #3c2a5a;
}

.tool_resourcepacks_totem_uploadContent_jdtr svg {
    margin-bottom: 8px;
    color: #8e44ad;
}

[data-theme="dark"] .tool_resourcepacks_totem_uploadContent_jdtr svg {
    color: #a855f7;
}

.tool_resourcepacks_totem_dragActive_p5Cc {
    background: #e5d1fa;
    border-color: #732d91;
    color: #732d91;
}

[data-theme="dark"] .tool_resourcepacks_totem_dragActive_p5Cc {
    background: #4c2b6b;
    border-color: #a855f7;
    color: #d1d5db;
}
/* 容器与布局 */
.bans_outerWrapper_OVvF {
  min-height: calc(100vh - 60px);
  padding: 28px 16px;
  background: linear-gradient(180deg, #f7f8fb 0%, #f5f6fa 100%);
}

.bans_container_Oi66 {
  width: 90%;
  margin: 28px auto;
  max-width: 1400px;
  padding: 28px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(20, 23, 28, 0.06);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  position: relative;
}

/* 标题 */
.bans_title_aGl7 {
  font-size: 24px;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
}

/* 搜索区 */
.bans_searchRow_ZOBU {
  display: flex;
  gap: 12px;
  align-items: center;
}

.bans_input_FTSL {
  flex: 1;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #eef0f3;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  font-size: 14px;
  outline: none;
  transition: box-shadow 0.16s, border-color 0.16s, transform 0.08s;
}

.bans_input_FTSL:focus {
  border-color: #6ee7b7;
  box-shadow: 0 6px 18px rgba(30, 180, 100, 0.08);
}

/* 筛选下拉框 */
.bans_dropdown_s7Ex {
  position: relative;
}

.bans_dropdownTrigger_epPD {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #eef0f3;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  font-size: 14px;
  cursor: pointer;
  transition: box-shadow 0.16s, border-color 0.16s;
  min-width: auto;
  white-space: nowrap;
  font-family: inherit;
  color: #1f2937;
}

.bans_dropdownTrigger_epPD:hover {
  border-color: #d1d5db;
}

.bans_dropdownTrigger_epPD.bans_dropdownOpen_f9Hg {
  border-color: #6ee7b7;
  box-shadow: 0 6px 18px rgba(30, 180, 100, 0.08);
}

.bans_dropdownArrow_oAgH {
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}

.bans_dropdownArrowUp_DS0o {
  transform: rotate(180deg);
}

.bans_dropdownMenu_K1GH {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 100%;
  background: #fff;
  border: 1px solid #eef0f3;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 100;
  padding: 4px;
  opacity: 0;
  transform: translateY(-6px) scale(0.97);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.bans_dropdownMenuOpen_Rlhn {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.bans_dropdownItem_u0ML {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  font-size: 14px;
  color: #374151;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  font-family: inherit;
  white-space: nowrap;
}

.bans_dropdownItem_u0ML:hover {
  background: #f3f4f6;
  color: #111827;
}

.bans_dropdownItemActive_ldrv {
  background: rgba(39, 174, 96, 0.08);
  color: #27ae60;
  font-weight: 600;
}

.bans_dropdownItemActive_ldrv:hover {
  background: rgba(39, 174, 96, 0.14);
}

/* 按钮 */
.bans_button_aHLW {
  padding: 10px 16px;
  border-radius: 10px;
  background: linear-gradient(180deg, #27ae60 0%, #1db954 100%);
  color: #fff;
  font-weight: 600;
  border: none;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(37, 150, 86, 0.14);
  transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s;
}

.bans_button_aHLW:active {
  transform: translateY(1px) scale(0.995);
}

.bans_button_aHLW:hover {
  filter: brightness(1.03);
}

/* 错误文本 */
.bans_error_Ibrj {
  color: #e65151;
  font-size: 13px;
  margin: 4px 0 0 0;
}

/* 表格区域 */
.bans_tableWrap_DnTJ {
  margin-bottom: 12px;
}

/* 表格样式 */
.bans_table_D8Im {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  color: #1f2937;
  table-layout: fixed;
  display: table !important;
}

.bans_table_D8Im thead {
  background: #fbfbfb;
}

.bans_table_D8Im th,
.bans_table_D8Im td {
  padding: 12px 14px;
  text-align: left;
  font-size: 14px;
  border-bottom: 1px solid #f0f2f5;
  vertical-align: middle; /* 确保所有单元格垂直居中 */
  box-sizing: border-box;
  word-break: break-word;
}

/* 表头和列宽建议（可在组件中使用 style 覆盖） */
.bans_table_D8Im th {
  font-weight: 700;
  color: #334155;
  font-size: 13px;
  text-transform: none;
}

/* 表格行交替色 */
.bans_table_D8Im tbody tr:nth-child(even) {
  background: #ffffff;
}

/* 玩家列 */
.bans_player_bPvB {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0; /* 防止 flex 项撑开导致换行问题 */
}

.bans_avatar_k9CP {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid rgba(16,24,40,0.04);
  flex-shrink: 0; /* 保证头像不缩小，避免影响对齐 */
  display: block;
}

.bans_playerName_KTsQ {
  font-weight: 600;
  color: #111827;
  line-height: 1.1; /* 稳定行高，便于垂直对齐 */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(100% - 48px); /* 防止名字超过列宽 */
}

/* 居中单元格辅助类（用于时间、操作者等） */
.bans_centerCell_ywJS {
  text-align: left;
  color: #334155;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 原因列长文本处理 */
.bans_reason_lBUK {
  max-width: 320px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 空状态 */
.bans_emptyState_anaZ {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px 12px;
  color: #7b8794;
  font-size: 15px;
}

/* 分页 */
.bans_pagination_Sbqd {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding-top: 6px;
}

.bans_pageButton_rlwc {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #e8eaed;
  background: white;
  cursor: pointer;
  font-weight: 600;
  transition: transform 0.12s ease, background-color 0.12s;
}

.bans_pageButton_rlwc:disabled {
  opacity: 0.46;
  cursor: not-allowed;
}

.bans_pageInfo_xG1_ {
  color: #475569;
  font-weight: 600;
}

/* loader 覆盖层（初始隐藏，GSAP 控制显示） */
.bans_loader_IyuQ {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 1200;
}

.bans_loaderBox_dRp_ {
  min-width: 160px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 8px 26px rgba(16,24,40,0.12);
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: auto;
}

/* 三点加载动画（使用 CSS keyframes ） */
.bans_loaderDots_dI82 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 46px;
  justify-content: center;
}

.bans_loaderDots_dI82 span {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #27ae60;
  transform-origin: center;
  animation: bans_dot_qy7e 1s infinite ease-in-out;
  opacity: 0.95;
}

.bans_loaderDots_dI82 span:nth-child(2) {
  animation-delay: 0.12s;
}
.bans_loaderDots_dI82 span:nth-child(3) {
  animation-delay: 0.24s;
}

@keyframes bans_dot_qy7e {
  0% { transform: translateY(0) scale(0.9); opacity: 0.6; }
  50% { transform: translateY(-6px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.6; }
}

.bans_loaderText_xulv {
  font-size: 14px;
  color: #111827;
  font-weight: 600;
}

/* 响应式 */
@media (max-width: 640px) {
  .bans_container_Oi66 {
    padding: 16px;
    border-radius: 10px;
  }

  .bans_searchRow_ZOBU {
    flex-wrap: wrap;
  }

  .bans_dropdownTrigger_epPD {
    padding: 10px 12px;
  }

  .bans_input_FTSL {
    padding: 10px 12px;
  }

  .bans_button_aHLW {
    padding: 10px 12px;
  }

  .bans_table_D8Im th, .bans_table_D8Im td {
    padding: 10px 8px;
    font-size: 13px;
  }

  .bans_reason_lBUK {
    max-width: 180px;
  }

  .bans_playerName_KTsQ {
    max-width: calc(100% - 44px);
  }
}



.bans_headerRow_XM39 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}






/* 深色模式适配 ban 页面布局 */

html[data-theme="dark"] .bans_outerWrapper_OVvF {
  background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

html[data-theme="dark"] .bans_container_Oi66 {
  background: #1e293b;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

html[data-theme="dark"] .bans_title_aGl7 {
  color: #f3f4f6;
}

html[data-theme="dark"] .bans_input_FTSL {
  border: 1px solid #334155;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  color: #e2e8f0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}

html[data-theme="dark"] .bans_input_FTSL::placeholder {
  color: #64748b;
}

html[data-theme="dark"] .bans_dropdownTrigger_epPD {
  border: 1px solid #334155;
  background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  color: #e2e8f0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}

html[data-theme="dark"] .bans_dropdownTrigger_epPD:hover {
  border-color: #475569;
}

html[data-theme="dark"] .bans_dropdownMenu_K1GH {
  background: #1e293b;
  border: 1px solid #334155;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

html[data-theme="dark"] .bans_dropdownItem_u0ML {
  color: #e2e8f0;
}

html[data-theme="dark"] .bans_dropdownItem_u0ML:hover {
  background: #334155;
  color: #f1f5f9;
}

html[data-theme="dark"] .bans_dropdownItemActive_ldrv {
  background: rgba(34, 197, 94, 0.12);
  color: #4ade80;
}

html[data-theme="dark"] .bans_dropdownItemActive_ldrv:hover {
  background: rgba(34, 197, 94, 0.2);
}

html[data-theme="dark"] .bans_button_aHLW {
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  color: #ffffff;
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.4);
}

html[data-theme="dark"] .bans_error_Ibrj {
  color: #f87171;
}

html[data-theme="dark"] .bans_tableWrap_DnTJ {
  /* 容器背景可能透明或继承，这里可以设置 */
  background: #1e293b;
}

html[data-theme="dark"] .bans_table_D8Im {
  color: #e2e8f0;
  background: #1e293b;
}

html[data-theme="dark"] .bans_table_D8Im thead {
  background: #334155;
}

html[data-theme="dark"] .bans_table_D8Im th {
  color: #e2e8f0;
  border-bottom: 1px solid #334155;
}

html[data-theme="dark"] .bans_table_D8Im td {
  border-bottom: 1px solid #334155;
}

html[data-theme="dark"] .bans_table_D8Im tbody tr:nth-child(even) {
  background: #1e293b;
}

html[data-theme="dark"] .bans_table_D8Im tbody tr:nth-child(odd) {
  background: #273449; /* 奇数行稍微亮一点的深色 */
}

html[data-theme="dark"] .bans_playerName_KTsQ {
  color: #f8fafc;
}

html[data-theme="dark"] .bans_avatar_k9CP {
  border: 1px solid rgba(255,255,255,0.1);
}

html[data-theme="dark"] .bans_centerCell_ywJS {
  color: #e2e8f0;
}

html[data-theme="dark"] .bans_reason_lBUK {
  color: #cbd5e1;
}

html[data-theme="dark"] .bans_emptyState_anaZ {
  color: #cbd5e1;
}

html[data-theme="dark"] .bans_pageButton_rlwc {
  background: #334155;
  border: 1px solid #475569;
  color: #e2e8f0;
}

html[data-theme="dark"] .bans_pageButton_rlwc:disabled {
  opacity: 0.5;
  color: #64748b;
}

html[data-theme="dark"] .bans_pageInfo_xG1_ {
  color: #cbd5e1;
}

html[data-theme="dark"] .bans_loaderBox_dRp_ {
  background: rgba(30, 41, 59, 0.96);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
}

html[data-theme="dark"] .bans_loaderText_xulv {
  color: #f3f4f6;
}

html[data-theme="dark"] .bans_loaderDots_dI82 span {
  background: #22c55e;
}


/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.codeBlockContainer_Ckt0 {
  background: var(--prism-background-color);
  color: var(--prism-color);
  margin-bottom: var(--ifm-leading);
  box-shadow: var(--ifm-global-shadow-lw);
  border-radius: var(--ifm-code-border-radius);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.codeBlock_bY9V {
  --ifm-pre-background: var(--prism-background-color);
  margin: 0;
  padding: 0;
}

.codeBlockStandalone_MEMb {
  padding: 0;
}

.codeBlockLines_e6Vv {
  font: inherit;
  /* rtl:ignore */
  float: left;
  min-width: 100%;
  padding: var(--ifm-pre-padding);
}

.codeBlockLinesWithNumbering_o6Pm {
  display: table;
  padding: var(--ifm-pre-padding) 0;
}

@media print {
  .codeBlockLines_e6Vv {
    white-space: pre-wrap;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/* Intentionally has zero specificity, so that to be able to override
the background in custom CSS file due bug https://github.com/facebook/docusaurus/issues/3678 */
:where(:root) {
  --docusaurus-highlighted-code-line-bg: rgb(72 77 91);
}

:where([data-theme='dark']) {
  --docusaurus-highlighted-code-line-bg: rgb(100 100 100);
}

.theme-code-block-highlighted-line {
  background-color: var(--docusaurus-highlighted-code-line-bg);
  display: block;
  margin: 0 calc(-1 * var(--ifm-pre-padding));
  padding: 0 var(--ifm-pre-padding);
}

.codeLine_lJS_ {
  display: table-row;
  counter-increment: line-count;
}

.codeLineNumber_Tfdd {
  display: table-cell;
  text-align: right;
  width: 1%;
  position: sticky;
  left: 0;
  padding: 0 var(--ifm-pre-padding);
  background: var(--ifm-pre-background);
  overflow-wrap: normal;
}

.codeLineNumber_Tfdd::before {
  content: counter(line-count);
  opacity: 0.4;
}

.theme-code-block-highlighted-line .codeLineNumber_Tfdd::before {
  opacity: 0.8;
}

.codeLineContent_feaV {
  padding-right: var(--ifm-pre-padding);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.theme-code-block:hover .copyButtonCopied_Vdqa {
  opacity: 1 !important;
}

.copyButtonIcons_IEyt {
  position: relative;
  width: 1.125rem;
  height: 1.125rem;
}

.copyButtonIcon_TrPX,
.copyButtonSuccessIcon_cVMy {
  position: absolute;
  top: 0;
  left: 0;
  fill: currentColor;
  opacity: inherit;
  width: inherit;
  height: inherit;
  transition: all var(--ifm-transition-fast) ease;
}

.copyButtonSuccessIcon_cVMy {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.33);
  opacity: 0;
  color: #00d600;
}

.copyButtonCopied_Vdqa .copyButtonIcon_TrPX {
  transform: scale(0.33);
  opacity: 0;
}

.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  transition-delay: 0.075s;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.wordWrapButtonIcon_b1P5 {
  width: 1.2rem;
  height: 1.2rem;
}

.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5 {
  color: var(--ifm-color-primary);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.buttonGroup_M5ko {
  display: flex;
  column-gap: 0.2rem;
  position: absolute;
  /* rtl:ignore */
  right: calc(var(--ifm-pre-padding) / 2);
  top: calc(var(--ifm-pre-padding) / 2);
}

.buttonGroup_M5ko button {
  display: flex;
  align-items: center;
  background: var(--prism-background-color);
  color: var(--prism-color);
  border: 1px solid var(--ifm-color-emphasis-300);
  border-radius: var(--ifm-global-radius);
  padding: 0.4rem;
  line-height: 0;
  transition: opacity var(--ifm-transition-fast) ease-in-out;
  opacity: 0;
}

.buttonGroup_M5ko button:focus-visible,
.buttonGroup_M5ko button:hover {
  opacity: 1 !important;
}

.theme-code-block:hover .buttonGroup_M5ko button {
  opacity: 0.4;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

:root {
  --docusaurus-tag-list-border: var(--ifm-color-emphasis-300);
}

.tag_zVej {
  border: 1px solid var(--docusaurus-tag-list-border);
  transition: border var(--ifm-transition-fast);
}

.tag_zVej:hover {
  --docusaurus-tag-list-border: var(--ifm-link-color);
  -webkit-text-decoration: none;
  text-decoration: none;
}

.tagRegular_sFm0 {
  border-radius: var(--ifm-global-radius);
  padding: 0.2rem 0.5rem 0.3rem;
  font-size: 90%;
}

.tagWithCount_h2kH {
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 0.5rem 0 1rem;
  border-left: 0;
}

.tagWithCount_h2kH::before,
.tagWithCount_h2kH::after {
  content: '';
  position: absolute;
  top: 50%;
  border: 1px solid var(--docusaurus-tag-list-border);
  transition: inherit;
}

.tagWithCount_h2kH::before {
  right: 100%;
  transform: translate(50%, -50%) rotate(-45deg);
  width: 1.18rem;
  height: 1.18rem;
  border-right: 0;
  border-bottom: 0;
}

.tagWithCount_h2kH::after {
  left: 0;
  transform: translateY(-50%);
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
}

.tagWithCount_h2kH span {
  background: var(--ifm-color-secondary);
  color: var(--ifm-color-black);
  font-size: 0.7rem;
  line-height: 1.2;
  border-radius: var(--ifm-global-radius);
  padding: 0.1rem 0.4rem;
  margin-left: 0.3rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tag_Nnez {
  display: inline-block;
  margin: 0.5rem 0.5rem 0 1rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.codeBlockContent_QJqH {
  position: relative;
  /* rtl:ignore */
  direction: ltr;
  border-radius: inherit;
}

.codeBlockTitle_OeMC {
  border-bottom: 1px solid var(--ifm-color-emphasis-300);
  font-size: var(--ifm-code-font-size);
  font-weight: 500;
  padding: 0.75rem var(--ifm-pre-padding);
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}

.codeBlockTitle_OeMC + .codeBlockContent_QJqH .codeBlock_a8dz {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tags_jXut {
  display: inline;
}

.tag_QGVx {
  margin: 0 0.4rem 0.5rem 0;
  display: inline-block;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.iconEdit_Z9Sw {
  margin-right: 0.3em;
  vertical-align: sub;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/*
CSS variables, meant to be overridden by final theme
 */
.details_lb9f {
  --docusaurus-details-summary-arrow-size: 0.38rem;
  --docusaurus-details-transition: transform 200ms ease;
  --docusaurus-details-decoration-color: grey;
}

.details_lb9f > summary {
  position: relative;
  cursor: pointer;
  list-style: none;
  padding-left: 1rem;
}

/* TODO: deprecation, need to remove this after Safari will support `::marker` */
.details_lb9f > summary::-webkit-details-marker {
  display: none;
}

.details_lb9f > summary::before {
  position: absolute;
  top: 0.45rem;
  left: 0;

  /* CSS-only Arrow */
  content: '';
  border-width: var(--docusaurus-details-summary-arrow-size);
  border-style: solid;
  border-color: transparent transparent transparent
    var(--docusaurus-details-decoration-color);

  /* Arrow rotation anim */
  transform: rotate(0deg);
  transition: var(--docusaurus-details-transition);
  transform-origin: calc(var(--docusaurus-details-summary-arrow-size) / 2) 50%;
}

/* When JS disabled/failed to load: we use the open property for arrow animation: */
.details_lb9f[open]:not(.isBrowser_bmU9) > summary::before,

.details_lb9f[data-collapsed='false'].isBrowser_bmU9 > summary::before {
  transform: rotate(90deg);
}

.collapsibleContent_i85q {
  margin-top: 1rem;
  border-top: 1px solid var(--docusaurus-details-decoration-color);
  padding-top: 1rem;
}

.collapsibleContent_i85q p:last-child {
  margin-bottom: 0;
}

.details_lb9f > summary > p:last-child {
  margin-bottom: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.lastUpdated_JAkA {
  font-size: smaller;
  font-style: italic;
  margin-top: 0.2rem;
}

@media (min-width: 997px) {
  .lastUpdated_JAkA {
    text-align: right;
  }
}

@media print {
  .noPrint_WFHX {
    display: none;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tocCollapsibleButton_TO0P {
  font-size: inherit;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 0.8rem;
  width: 100%;
}

.tocCollapsibleButton_TO0P::after {
  content: '';
  background: var(--ifm-menu-link-sublist-icon) 50% 50% / 2rem 2rem no-repeat;
  filter: var(--ifm-menu-link-sublist-icon-filter);
  height: 1.25rem;
  width: 1.25rem;
  transform: rotate(180deg);
  transition: transform var(--ifm-transition-fast);
}

.tocCollapsibleButtonExpanded_MG3E::after {
  transform: none;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tocCollapsible_ETCw {
  background-color: var(--ifm-menu-color-background-active);
  border-radius: var(--ifm-global-radius);
  margin: 1rem 0;
}

.tocCollapsibleContent_vkbj > ul {
  border-left: none;
  border-top: 1px solid var(--ifm-color-emphasis-300);
  padding: 0.2rem 0;
  font-size: 15px;
}

.tocCollapsibleContent_vkbj ul li {
  margin: 0.4rem 0.8rem;
}

.tocCollapsibleContent_vkbj a {
  display: block;
}

.tocCollapsibleExpanded_sAul {
  transform: none;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
  .tocMobile_ITEo {
    display: none;
  }
}

@media print {
  .tocMobile_ITEo {
    display: none;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.details_b_Ee {
  --docusaurus-details-decoration-color: var(--ifm-alert-border-color);
  --docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
  margin: 0 0 var(--ifm-spacing-vertical);
  border: 1px solid var(--ifm-alert-border-color);
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.containsTaskList_mC6p {
  list-style: none;
}

:not(.containsTaskList_mC6p > li) > .containsTaskList_mC6p {
  padding-left: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.img_ev3q {
  height: auto;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.tableOfContents_bqdL {
  max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
  overflow-y: auto;
  position: sticky;
  top: calc(var(--ifm-navbar-height) + 1rem);
}

@media (max-width: 996px) {
  .tableOfContents_bqdL {
    display: none;
  }

  .docItemContainer_F8PC {
    padding: 0 0.3rem;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.admonition_xJq3 {
  margin-bottom: 1em;
}

.admonitionHeading_Gvgb {
  font: var(--ifm-heading-font-weight) var(--ifm-h5-font-size) /
    var(--ifm-heading-line-height) var(--ifm-heading-font-family);
  text-transform: uppercase;
}

/* Heading alone without content (does not handle fragment content) */
.admonitionHeading_Gvgb:not(:last-child) {
  margin-bottom: 0.3rem;
}

.admonitionHeading_Gvgb code {
  text-transform: none;
}

.admonitionIcon_Rf37 {
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.4em;
}

.admonitionIcon_Rf37 svg {
  display: inline-block;
  height: 1.6em;
  width: 1.6em;
  fill: var(--ifm-alert-foreground-color);
}

.admonitionContent_BuS1 > :last-child {
  margin-bottom: 0;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.breadcrumbHomeIcon_YNFT {
  position: relative;
  top: 1px;
  vertical-align: top;
  height: 1.1rem;
  width: 1.1rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.breadcrumbsContainer_Z_bl {
  --ifm-breadcrumb-size-multiplier: 0.8;
  margin-bottom: 0.8rem;
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@media (min-width: 997px) {
  .generatedIndexPage_vN6x {
    max-width: 75% !important;
  }
}

/* Duplicated from .markdown h1 */
.title_kItE {
  --ifm-h1-font-size: 3rem;
  margin-bottom: calc(1.25 * var(--ifm-leading));
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.docItemContainer_Djhp header + *,
.docItemContainer_Djhp article > *:first-child {
  margin-top: 0;
}

@media (min-width: 997px) {
  .docItemCol_VOVn {
    max-width: 75% !important;
  }
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

.mdxPageWrapper_j9I6 {
  justify-content: center;
}

