/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 736px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 24px;
  --font-body: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

:root {
  --typography-body-font-family: var(--font-body);
  --typography-heading-font-family: var(--font-heading);
  --typography-code-font-family: var(--font-code);
}


.light, :root {
  --accent-1: #fcfdff;
  --accent-2: #f5f8ff;
  --accent-3: #ebf1ff;
  --accent-4: #dfe7ff;
  --accent-5: #d3ddff;
  --accent-6: #c2ceff;
  --accent-7: #abbaff;
  --accent-8: #8d9cff;
  --accent-9: #3122ab;
  --accent-10: #3e39c0;
  --accent-11: #4c43ec;
  --accent-12: #250094;

  --accent-a1: #0055ff03;
  --accent-a2: #004dff0a;
  --accent-a3: #004dff14;
  --accent-a4: #0040ff20;
  --accent-a5: #003aff2c;
  --accent-a6: #0033ff3d;
  --accent-a7: #002eff54;
  --accent-a8: #0022ff72;
  --accent-a9: #11009edd;
  --accent-a10: #0700aec6;
  --accent-a11: #0c00e5bc;
  --accent-a12: #250094;

  --accent-contrast: #fff;
  --accent-surface: #f3f6ffcc;
  --accent-indicator: #3122ab;
  --accent-track: #3122ab;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0053 275.9);
      --accent-2: oklch(98.1% 0.0189 275.9);
      --accent-3: oklch(96.1% 0.0357 275.9);
      --accent-4: oklch(93.5% 0.0719 275.9);
      --accent-5: oklch(90.4% 0.1073 275.9);
      --accent-6: oklch(86.5% 0.1419 275.9);
      --accent-7: oklch(80.8% 0.1804 275.9);
      --accent-8: oklch(72.9% 0.2413 275.9);
      --accent-9: oklch(38.3% 0.2023 275.9);
      --accent-10: oklch(44.5% 0.2023 275.9);
      --accent-11: oklch(51.2% 0.2413 275.9);
      --accent-12: oklch(31.5% 0.2023 275.9);

      --accent-a1: color(display-p3 0.0235 0.349 1 / 0.012);
      --accent-a2: color(display-p3 0.0235 0.2392 0.8941 / 0.036);
      --accent-a3: color(display-p3 0.0078 0.2706 0.949 / 0.075);
      --accent-a4: color(display-p3 0.0039 0.2314 0.9373 / 0.122);
      --accent-a5: color(display-p3 0.0039 0.1922 0.9294 / 0.165);
      --accent-a6: color(display-p3 0.0039 0.1725 0.9333 / 0.232);
      --accent-a7: color(display-p3 0.0039 0.1529 0.9412 / 0.318);
      --accent-a8: color(display-p3 0.0039 0.1098 0.9373 / 0.436);
      --accent-a9: color(display-p3 0.0549 0 0.5882 / 0.863);
      --accent-a10: color(display-p3 0.0196 0 0.6471 / 0.777);
      --accent-a11: color(display-p3 0.0392 0 0.851 / 0.738);
      --accent-a12: color(display-p3 0.1216 0 0.5529 / 0.993);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9529 0.9686 1 / 0.8);
      --accent-indicator: oklch(38.3% 0.2023 275.9);
      --accent-track: oklch(38.3% 0.2023 275.9);
    }
  }
}


.light, :root {
  --grayscale-1: #fdfcfd;
  --grayscale-2: #faf9fb;
  --grayscale-3: #f2eff3;
  --grayscale-4: #eae7ec;
  --grayscale-5: #e3dfe6;
  --grayscale-6: #dbd8e0;
  --grayscale-7: #d0cdd7;
  --grayscale-8: #bcbac7;
  --grayscale-9: #8e8c99;
  --grayscale-10: #84828e;
  --grayscale-11: #65636d;
  --grayscale-12: #211f26;

  --grayscale-a1: #55005503;
  --grayscale-a2: #2b005506;
  --grayscale-a3: #30004010;
  --grayscale-a4: #20003618;
  --grayscale-a5: #20003820;
  --grayscale-a6: #14003527;
  --grayscale-a7: #10003332;
  --grayscale-a8: #08003145;
  --grayscale-a9: #05001d73;
  --grayscale-a10: #0500197d;
  --grayscale-a11: #0400119c;
  --grayscale-a12: #020008e0;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #8e8c99;
  --grayscale-track: #8e8c99;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.991 0.988 0.992);
      --grayscale-2: color(display-p3 0.98 0.976 0.984);
      --grayscale-3: color(display-p3 0.946 0.938 0.952);
      --grayscale-4: color(display-p3 0.915 0.906 0.925);
      --grayscale-5: color(display-p3 0.886 0.876 0.901);
      --grayscale-6: color(display-p3 0.856 0.846 0.875);
      --grayscale-7: color(display-p3 0.814 0.804 0.84);
      --grayscale-8: color(display-p3 0.735 0.728 0.777);
      --grayscale-9: color(display-p3 0.555 0.549 0.596);
      --grayscale-10: color(display-p3 0.514 0.508 0.552);
      --grayscale-11: color(display-p3 0.395 0.388 0.424);
      --grayscale-12: color(display-p3 0.128 0.122 0.147);

      --grayscale-a1: #55005503;
      --grayscale-a2: #2b005506;
      --grayscale-a3: #30004010;
      --grayscale-a4: #20003618;
      --grayscale-a5: #20003820;
      --grayscale-a6: #14003527;
      --grayscale-a7: #10003332;
      --grayscale-a8: #08003145;
      --grayscale-a9: #05001d73;
      --grayscale-a10: #0500197d;
      --grayscale-a11: #0400119c;
      --grayscale-a12: #020008e0;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.555 0.549 0.596);
      --grayscale-track: color(display-p3 0.555 0.549 0.596);
    }
  }
}


.dark {
  --accent-1: #0d0c15;
  --accent-2: #161522;
  --accent-3: #262143;
  --accent-4: #31285e;
  --accent-5: #3b316c;
  --accent-6: #463c7a;
  --accent-7: #53498d;
  --accent-8: #6357a8;
  --accent-9: #b1a8fc;
  --accent-10: #a69df0;
  --accent-11: #b2a9fe;
  --accent-12: #e1dffb;

  --accent-a1: #b5b40003;
  --accent-a2: #f5f45f0c;
  --accent-a3: #b39aff29;
  --accent-a4: #9275ff48;
  --accent-a5: #977bff58;
  --accent-a6: #9b85ff68;
  --accent-a7: #9c8afd7e;
  --accent-a8: #9b88ff9c;
  --accent-a9: #b3aafffc;
  --accent-a10: #b1a7ffee;
  --accent-a11: #b3aafffe;
  --accent-a12: #e5e3fffb;

  --accent-contrast: #fff;
  --accent-surface: #21202580;
  --accent-indicator: #b1a8fc;
  --accent-track: #b1a8fc;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(16% 0.0196 288.2);
      --accent-2: oklch(20.3% 0.0265 288.2);
      --accent-3: oklch(27% 0.0622 288.2);
      --accent-4: oklch(31.7% 0.0924 288.2);
      --accent-5: oklch(35.7% 0.0991 288.2);
      --accent-6: oklch(39.8% 0.1013 288.2);
      --accent-7: oklch(44.8% 0.1089 288.2);
      --accent-8: oklch(50.7% 0.1252 288.2);
      --accent-9: oklch(77.1% 0.1189 288.2);
      --accent-10: oklch(73.7% 0.1189 288.2);
      --accent-11: oklch(77.6% 0.1189 288.2);
      --accent-12: oklch(91.4% 0.038 288.2);

      --accent-a1: color(display-p3 0.9176 0.9137 0 / 0.009);
      --accent-a2: color(display-p3 0.9843 0.9765 0.3765 / 0.046);
      --accent-a3: color(display-p3 0.698 0.6196 1 / 0.156);
      --accent-a4: color(display-p3 0.5804 0.4745 1 / 0.272);
      --accent-a5: color(display-p3 0.5922 0.5059 1 / 0.329);
      --accent-a6: color(display-p3 0.6118 0.5412 1 / 0.392);
      --accent-a7: color(display-p3 0.6196 0.5608 1 / 0.476);
      --accent-a8: color(display-p3 0.6157 0.5529 1 / 0.592);
      --accent-a9: color(display-p3 0.7137 0.6863 1 / 0.96);
      --accent-a10: color(display-p3 0.7059 0.6745 1 / 0.907);
      --accent-a11: color(display-p3 0.7137 0.6824 1 / 0.969);
      --accent-a12: color(display-p3 0.9059 0.898 1 / 0.974);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1255 0.1255 0.1412 / 0.5);
      --accent-indicator: oklch(77.1% 0.1189 288.2);
      --accent-track: oklch(77.1% 0.1189 288.2);
    }
  }
}


.dark {
  --grayscale-1: #121113;
  --grayscale-2: #1a191b;
  --grayscale-3: #232225;
  --grayscale-4: #2b292d;
  --grayscale-5: #323035;
  --grayscale-6: #3c393f;
  --grayscale-7: #49474e;
  --grayscale-8: #625f69;
  --grayscale-9: #6f6d78;
  --grayscale-10: #7c7a85;
  --grayscale-11: #b5b2bc;
  --grayscale-12: #eeeef0;

  --grayscale-a1: #00000000;
  --grayscale-a2: #f5f4f609;
  --grayscale-a3: #ebeaf814;
  --grayscale-a4: #eee5f81d;
  --grayscale-a5: #efe6fe25;
  --grayscale-a6: #f1e6fd30;
  --grayscale-a7: #eee9ff40;
  --grayscale-a8: #eee7ff5d;
  --grayscale-a9: #eae6fd6e;
  --grayscale-a10: #ece9fd7c;
  --grayscale-a11: #f5f1ffb7;
  --grayscale-a12: #fdfdffef;

  --grayscale-contrast: #fff;
  --grayscale-surface: rgba(0, 0, 0, 0.05);
  --grayscale-indicator: #6f6d78;
  --grayscale-track: #6f6d78;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.07 0.067 0.074);
      --grayscale-2: color(display-p3 0.101 0.098 0.105);
      --grayscale-3: color(display-p3 0.138 0.134 0.144);
      --grayscale-4: color(display-p3 0.167 0.161 0.175);
      --grayscale-5: color(display-p3 0.196 0.189 0.206);
      --grayscale-6: color(display-p3 0.232 0.225 0.245);
      --grayscale-7: color(display-p3 0.286 0.277 0.302);
      --grayscale-8: color(display-p3 0.383 0.373 0.408);
      --grayscale-9: color(display-p3 0.434 0.428 0.467);
      --grayscale-10: color(display-p3 0.487 0.48 0.519);
      --grayscale-11: color(display-p3 0.707 0.7 0.735);
      --grayscale-12: color(display-p3 0.933 0.933 0.94);

      --grayscale-a1: #00000000;
      --grayscale-a2: #f5f4f609;
      --grayscale-a3: #ebeaf814;
      --grayscale-a4: #eee5f81d;
      --grayscale-a5: #efe6fe25;
      --grayscale-a6: #f1e6fd30;
      --grayscale-a7: #eee9ff40;
      --grayscale-a8: #eee7ff5d;
      --grayscale-a9: #eae6fd6e;
      --grayscale-a10: #ece9fd7c;
      --grayscale-a11: #f5f1ffb7;
      --grayscale-a12: #fdfdffef;

      --grayscale-contrast: #fff;
      --grayscale-surface: color(display-p3 0 0 0 / 5%);
      --grayscale-indicator: color(display-p3 0.434 0.428 0.467);
      --grayscale-track: color(display-p3 0.434 0.428 0.467);
    }
  }
}

.light, :root {
  color-scheme: light;
  --accent: rgba(49, 34, 171, 1);
  --background: rgba(255, 255, 255, 1);
  --border: rgba(221, 217, 242, 1);
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #fff;
}

.dark {
  color-scheme: dark;
  --accent: rgba(177, 168, 252, 1);
  --background: rgba(11, 10, 31, 1);
  --border: rgba(36, 31, 74, 1);
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0b0a1f;
}

/* Guida di Userbot — ritocchi minimi sopra il tema di Fern.
   I colori del brand stanno in docs.yml; qui solo ciò che il tema non copre. */

/* Gli screenshot di prodotto sono l'elemento più pesante della pagina.
   Una cornice leggera li stacca dal testo senza trasformarli in riquadri
   rumorosi, e chiarisce dove finisce l'interfaccia e ricomincia la guida. */
.fern-mdx-content img {
  border-radius: 10px;
  border: 1px solid rgb(49 34 171 / 14%);
  box-shadow:
    0 1px 2px rgb(17 12 60 / 6%),
    0 10px 28px rgb(17 12 60 / 7%);
}

@media (prefers-color-scheme: dark) {

  .fern-mdx-content img {
    border-color: rgb(177 168 252 / 20%);
    box-shadow: none;
  }

}

:root[data-theme="dark"] .fern-mdx-content img {
  border-color: rgb(177 168 252 / 20%);
  box-shadow: none;
}

/* Le tabelle della guida sono quasi sempre "voce → a cosa serve":
   la prima colonna fa da etichetta, non da dato. */
.fern-mdx-content table td:first-child {
  white-space: nowrap;
  font-weight: 560;
}

@media (max-width: 640px) {

  .fern-mdx-content table td:first-child {
    white-space: normal;
  }

}

/* Le schede che portano da qualche parte devono sembrarlo.
   Nella guida ce ne sono di due tipi e finora erano identiche a vedersi:
   quarantasette portano a un'altra pagina, cinquantasei sono solo descrittive —
   esempi, casi d'uso, confronti. Chi legge non aveva modo di sapere quali
   cliccare, e provava sulle altre.
   Fern distingue già le due cose nel markup: le cliccabili sono un `a`, le
   altre un `div`. Qui si limita a renderlo visibile. */
a.fern-card {
  transition:
    border-color 140ms ease,
    box-shadow 140ms ease,
    transform 140ms ease;
}

/* La freccia c'è sempre, non solo al passaggio del mouse: un'affordance che
   compare solo quando ci sei già sopra non serve a chi deve decidere dove
   andare. A riposo è discreta, all'hover si accende e si sposta. */
a.fern-card::after {
  content: "→";
  position: absolute;
  top: 1.15rem;
  right: 1.15rem;
  font-size: 1.05rem;
  line-height: 1;
  color: var(--accent-a10);
  opacity: 0.45;
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

/* Oggi tutte le schede cliccabili hanno un'icona, quindi il titolo sta sotto e
   non arriva mai dove sta la freccia. Su una senza icona il titolo partirebbe
   dall'alto e ci finirebbe sotto: qui gli si lascia il posto, così chi ne
   aggiungerà una non dovrà scoprirlo da un ritaglio storto. */
a.fern-card:not(:has(.card-icon)) > * {
  padding-right: 1.5rem;
}

a.fern-card:hover {
  border-color: var(--accent-a10);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgb(17 12 60 / 8%);
}

a.fern-card:hover::after {
  opacity: 1;
  transform: translateX(3px);
}
a.fern-card:focus-visible::after {
  opacity: 1;
  transform: translateX(3px);
}

/* Il titolo di una scheda cliccabile si comporta come un collegamento. */
a.fern-card:hover :is(h3, h4, .fern-card-title) {
  color: var(--accent-a10);
}
a.fern-card:focus-within :is(h3, h4, .fern-card-title) {
  color: var(--accent-a10);
}

/* Chi naviga da tastiera deve vedere dov'è, e il contorno non deve essere
   mangiato dalla scheda accanto. */
a.fern-card:focus-visible {
  outline: 2px solid var(--accent-a10);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

  a.fern-card,
  a.fern-card::after {
    transition: none;
  }
  a.fern-card:hover {
    transform: none;
  }
  a.fern-card:hover::after {
    transform: none;
  }
a.fern-card:focus-visible::after {
    transform: none;
  }

}

/* Su schermo stretto le schede stanno in colonna e la freccia in alto a destra
   finisce lontana dal titolo: meglio accanto al bordo, più raccolta. */
@media (max-width: 640px) {

  a.fern-card::after {
    top: 0.95rem;
    right: 0.95rem;
    font-size: 0.95rem;
  }

}
