/* ds.css — generated by scripts/design_system.py. Do not edit. */
/* Tokens and components: OpenAI Apps SDK UI 0.2.2, MIT. See design-system/vendor. */
@layer theme, base, components, site;

/* Google Sans, self-hosted. Variable weight axis 400-700, Latin and Latin Extended.
   Source: @fontsource-variable/google-sans 5.3.1 (SIL Open Font License 1.1, see
   fonts/google-sans/OFL.txt). Served from assets/fonts/. Other scripts and symbols such as
   arrows fall back to the system font in the --font-sans stack. */
@font-face{font-family:"Google Sans";font-style:normal;font-weight:400 700;font-display:swap;
  src:url(fonts/google-sans-latin-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Google Sans";font-style:normal;font-weight:400 700;font-display:swap;
  src:url(fonts/google-sans-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Google Sans";font-style:italic;font-weight:400 700;font-display:swap;
  src:url(fonts/google-sans-latin-ext-wght-italic.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Google Sans";font-style:italic;font-weight:400 700;font-display:swap;
  src:url(fonts/google-sans-latin-wght-italic.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


@layer theme{
  :root{
    --tracking-tighter:-0.05em;--tracking-tight:-0.025em;--tracking-normal:0em;
    --tracking-wide:0.025em;--tracking-wider:0.05em;--tracking-widest:0.1em;
    --leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;
  }
}

@layer theme {
  :root,
  :where([data-theme]) {
    /* =============================================
      Gray
    ============================================= */
    --gray-500: #5d5d5d;

    /* =============================================
      Alpha transparency
    ============================================= */
    --alpha-0: color-mix(in oklab, var(--alpha-base) 0%, transparent);
    --alpha-02: color-mix(in oklab, var(--alpha-base) 2%, transparent);
    --alpha-04: color-mix(in oklab, var(--alpha-base) 4%, transparent);
    --alpha-05: color-mix(in oklab, var(--alpha-base) 5%, transparent);
    --alpha-06: color-mix(in oklab, var(--alpha-base) 6%, transparent);
    --alpha-08: color-mix(in oklab, var(--alpha-base) 8%, transparent);
    --alpha-10: color-mix(in oklab, var(--alpha-base) 10%, transparent);
    --alpha-12: color-mix(in oklab, var(--alpha-base) 12%, transparent);
    --alpha-15: color-mix(in oklab, var(--alpha-base) 15%, transparent);
    --alpha-16: color-mix(in oklab, var(--alpha-base) 16%, transparent);
    --alpha-20: color-mix(in oklab, var(--alpha-base) 20%, transparent);
    --alpha-25: color-mix(in oklab, var(--alpha-base) 25%, transparent);
    --alpha-30: color-mix(in oklab, var(--alpha-base) 30%, transparent);
    --alpha-35: color-mix(in oklab, var(--alpha-base) 35%, transparent);
    --alpha-40: color-mix(in oklab, var(--alpha-base) 40%, transparent);
    --alpha-50: color-mix(in oklab, var(--alpha-base) 50%, transparent);
    --alpha-60: color-mix(in oklab, var(--alpha-base) 60%, transparent);
    --alpha-70: color-mix(in oklab, var(--alpha-base) 70%, transparent);

    /* =============================================
      Consistent contrast
    ============================================= */
    --white: #ffffff;
    --black: #000000;

    /* =============================================
      Green
    ============================================= */
    --green-25: #edfaf2;
    --green-50: #d9f4e4;
    --green-75: #b8ebcc;
    --green-100: #8cdfad;
    --green-200: #66d492;
    --green-300: #40c977;
    --green-400: #04b84c;
    --green-500: #00a240;
    --green-600: #008635;
    --green-700: #00692a;
    --green-800: #004f1f;
    --green-900: #003716;
    --green-950: #011c0b;
    --green-1000: #001207;
    --green-a25: color-mix(in oklab, var(--green-400) 8%, transparent);
    --green-a50: color-mix(in oklab, var(--green-400) 15%, transparent);
    --green-a75: color-mix(in oklab, var(--green-400) 29%, transparent);
    --green-a100: color-mix(in oklab, var(--green-400) 45%, transparent);
    --green-a200: color-mix(in oklab, var(--green-400) 60%, transparent);
    --green-a300: color-mix(in oklab, var(--green-400) 75%, transparent);

    /* =============================================
      Red
    ============================================= */
    --red-25: #fff0f0;
    --red-50: #ffd9d9;
    --red-75: #ffc6c5;
    --red-100: #ffa4a2;
    --red-200: #ff8583;
    --red-300: #ff6764;
    --red-400: #fa423e;
    --red-500: #e02e2a;
    --red-600: #ba2623;
    --red-700: #911e1b;
    --red-800: #6e1615;
    --red-900: #4d100e;
    --red-950: #280b0a;
    --red-1000: #1f0909;
    --red-a25: color-mix(in oklab, var(--red-400) 8%, transparent);
    --red-a50: color-mix(in oklab, var(--red-400) 16%, transparent);
    --red-a75: color-mix(in oklab, var(--red-400) 30%, transparent);
    --red-a100: color-mix(in oklab, var(--red-400) 48%, transparent);
    --red-a200: color-mix(in oklab, var(--red-400) 64%, transparent);
    --red-a300: color-mix(in oklab, var(--red-400) 79%, transparent);

    /* =============================================
      Pink
    ============================================= */
    --pink-25: #fff4f9;
    --pink-50: #ffe8f3;
    --pink-75: #ffd4e8;
    --pink-100: #ffbada;
    --pink-200: #ffa3ce;
    --pink-300: #ff8cc1;
    --pink-400: #ff66ad;
    --pink-500: #e04c91;
    --pink-600: #ba437a;
    --pink-700: #963c67;
    --pink-800: #6e2c4a;
    --pink-900: #4d1f34;
    --pink-950: #29101c;
    --pink-1000: #1a0a11;
    --pink-a25: color-mix(in oklab, var(--pink-400) 8%, transparent);
    --pink-a50: color-mix(in oklab, var(--pink-400) 16%, transparent);
    --pink-a75: color-mix(in oklab, var(--pink-400) 28%, transparent);
    --pink-a100: color-mix(in oklab, var(--pink-400) 45%, transparent);
    --pink-a200: color-mix(in oklab, var(--pink-400) 60%, transparent);
    --pink-a300: color-mix(in oklab, var(--pink-400) 76%, transparent);

    /* =============================================
      Orange
    ============================================= */
    --orange-25: #fff5f0;
    --orange-50: #ffe7d9;
    --orange-75: #ffcfb4;
    --orange-100: #ffb790;
    --orange-200: #ff9e6c;
    --orange-300: #ff8549;
    --orange-400: #fb6a22;
    --orange-500: #e25507;
    --orange-600: #b9480d;
    --orange-700: #923b0f;
    --orange-800: #6d2e0f;
    --orange-900: #4a2206;
    --orange-950: #281105;
    --orange-1000: #211107;
    --orange-a25: color-mix(in oklab, var(--orange-400) 7%, transparent);
    --orange-a50: color-mix(in oklab, var(--orange-400) 16%, transparent);
    --orange-a75: color-mix(in oklab, var(--orange-400) 33%, transparent);
    --orange-a100: color-mix(in oklab, var(--orange-400) 48%, transparent);
    --orange-a200: color-mix(in oklab, var(--orange-400) 65%, transparent);
    --orange-a300: color-mix(in oklab, var(--orange-400) 81%, transparent);

    /* =============================================
      Yellow
    ============================================= */
    --yellow-25: #fffbed;
    --yellow-50: #fff6d9;
    --yellow-75: #ffeeb8;
    --yellow-100: #ffe48c;
    --yellow-200: #ffdb66;
    --yellow-300: #ffd240;
    --yellow-400: #ffc300;
    --yellow-500: #e0ac00;
    --yellow-600: #ba8e00;
    --yellow-700: #916f00;
    --yellow-800: #6e5400;
    --yellow-900: #4d3b00;
    --yellow-950: #261d00;
    --yellow-1000: #1a1400;
    --yellow-a25: color-mix(in oklab, var(--yellow-400) 8%, transparent);
    --yellow-a50: color-mix(in oklab, var(--yellow-400) 15%, transparent);
    --yellow-a75: color-mix(in oklab, var(--yellow-400) 27%, transparent);
    --yellow-a100: color-mix(in oklab, var(--yellow-400) 45%, transparent);
    --yellow-a200: color-mix(in oklab, var(--yellow-400) 59%, transparent);
    --yellow-a300: color-mix(in oklab, var(--yellow-400) 74%, transparent);

    /* =============================================
      Purple
    ============================================= */
    --purple-25: #f9f5fe;
    --purple-50: #efe5fe;
    --purple-75: #e0cefd;
    --purple-100: #ceb0fb;
    --purple-200: #be95fa;
    --purple-300: #ad7bf9;
    --purple-400: #924ff7;
    --purple-500: #8046d9;
    --purple-600: #6b3ab4;
    --purple-700: #532d8d;
    --purple-800: #3f226a;
    --purple-900: #2c184a;
    --purple-950: #160c25;
    --purple-1000: #100a19;
    --purple-a25: color-mix(in oklab, var(--purple-400) 6%, transparent);
    --purple-a50: color-mix(in oklab, var(--purple-400) 15%, transparent);
    --purple-a75: color-mix(in oklab, var(--purple-400) 28%, transparent);
    --purple-a100: color-mix(in oklab, var(--purple-400) 45%, transparent);
    --purple-a200: color-mix(in oklab, var(--purple-400) 60%, transparent);
    --purple-a300: color-mix(in oklab, var(--purple-400) 75%, transparent);

    /* =============================================
      Blue
    ============================================= */
    --blue-25: #f5faff;
    --blue-50: #e5f3ff;
    --blue-75: #cce6ff;
    --blue-100: #99ceff;
    --blue-200: #66b5ff;
    --blue-300: #339cff;
    --blue-400: #0285ff;
    --blue-500: #0169cc;
    --blue-600: #004f99;
    --blue-700: #003f7a;
    --blue-800: #013566;
    --blue-900: #00284d;
    --blue-950: #000e1a;
    --blue-1000: #000d19;
    --blue-a25: color-mix(in oklab, var(--blue-400) 4%, transparent);
    --blue-a50: color-mix(in oklab, var(--blue-400) 13%, transparent);
    --blue-a75: color-mix(in oklab, var(--blue-400) 25%, transparent);
    --blue-a100: color-mix(in oklab, var(--blue-400) 40%, transparent);
    --blue-a200: color-mix(in oklab, var(--blue-400) 60%, transparent);
    --blue-a300: color-mix(in oklab, var(--blue-400) 80%, transparent);

    /* =============================================
    Sizes
    ============================================= */
    --hairline: 1px;

    /* =============================================
    Shadows
    ============================================= */
    /* Color */
    /* Geometry – x | y | blur | spread */
  }
  :where(:root), :where([data-theme="light"]) {
    --gray-0: #ffffff;
    --gray-25: #fcfcfc;
    --gray-50: #f9f9f9;
    --gray-75: #f3f3f3;
    --gray-100: #ededed;
    --gray-150: #dfdfdf;
    --gray-200: #cdcdcd;
    --gray-250: #b9b9b9;
    --gray-300: #afafaf;
    --gray-350: #9f9f9f;
    --gray-400: #8f8f8f;
    --gray-450: #767676;
    --gray-550: #4f4f4f;
    --gray-600: #414141;
    --gray-650: #393939;
    --gray-700: #303030;
    --gray-750: #282828;
    --gray-800: #212121;
    --gray-850: #1c1c1c;
    --gray-900: #181818;
    --gray-925: #161616;
    --gray-950: #131313;
    --gray-975: #101010;
    --gray-1000: #0d0d0d;
    --alpha-base: #0d0d0d;
  }
  :where([data-theme="dark"]) {
    --gray-0: #0d0d0d;
    --gray-25: #101010;
    --gray-50: #131313;
    --gray-75: #161616;
    --gray-100: #181818;
    --gray-150: #1c1c1c;
    --gray-200: #212121;
    --gray-250: #282828;
    --gray-300: #303030;
    --gray-350: #393939;
    --gray-400: #414141;
    --gray-450: #4f4f4f;
    --gray-550: #767676;
    --gray-600: #8f8f8f;
    --gray-650: #9f9f9f;
    --gray-700: #afafaf;
    --gray-750: #b9b9b9;
    --gray-800: #cdcdcd;
    --gray-850: #dcdcdc;
    --gray-900: #ededed;
    --gray-925: #f3f3f3;
    --gray-950: #f3f3f3;
    --gray-975: #f9f9f9;
    --gray-1000: #ffffff;
    --alpha-base: #ffffff;
  }

    @media (resolution >= 150dpi), (resolution >= 1.5dppx) {
  :root,
  :where([data-theme]) {
      --hairline: 0.5px;
  }
    }

    :root,
  :where([data-theme]) {
    --shadow-color: 0 0 0;
    --elevation-100-geo: 0 1px 2px -1px;
    --elevation-200-geo: 0 2px 4px -1px;
    --elevation-300-geo: 0 4px 8px -2px;
    --elevation-400-geo: 0 8px 16px -4px;
  }

  :where(:root),
  :where([data-theme="light"]) {
    /* Alpha */
    --shadow-alpha-100: 0.08;
    --shadow-alpha-200: 0.08;
    --shadow-alpha-300: 0.1;
    --shadow-alpha-400: 0.12;
    --shadow-hairline-width: 1px;
    --shadow-hairline-color: rgb(0 0 0 / 8%);
  }

    @media (resolution >= 150dpi), (resolution >= 1.5dppx) {

  :where(:root),
  :where([data-theme="light"]) {
      --shadow-hairline-width: 0.5px;
      --shadow-hairline-color: rgb(0 0 0 / 10%)
  }
    }

  :where([data-theme="dark"]) {
    --shadow-alpha-100: 0.2;
    --shadow-alpha-200: 0.2;
    --shadow-alpha-300: 0.36;
    --shadow-alpha-400: 0.3;
    --shadow-hairline-width: 1px;
    --shadow-hairline-color: rgb(255 255 255 / 10%);
  }

    @media (resolution >= 150dpi), (resolution >= 1.5dppx) {

  :where([data-theme="dark"]) {
      --shadow-hairline-width: 0.5px;
      --shadow-hairline-color: rgb(255 255 255 / 12%)
  }
    }

    :where([data-theme="dark"]) [data-surface="elevated"] {
      --shadow-hairline: 0 0 rgb(0 0 0 / 0%); /* no edge on lighter gray */
    }
}

/* stylelint-disable custom-property-pattern -- Tailwind requires this sometimes */

/* Always generate these variables, but they are also available to Tailwind */
@layer theme {
:root {
  /* =============================================
    Breakpoints - configured in postcss.config
  ============================================= */
  --breakpoint-xs: 380px;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;

  /* =============================================
    Font families
  ============================================= */
  --font-serif: initial;
  --font-sans: ui-sans-serif, -apple-system, system-ui, "Segoe UI", "Noto Sans", "Helvetica",
    "Arial", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "SF Mono", "Menlo", "Monaco", "Consolas",
    "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;

  /* =============================================
    Font weights
  ============================================= */

  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* =============================================
    Radius
  ============================================= */

  --radius-2xs: 0.125rem; /* 2px */
  --radius-xs: 0.25rem; /* 4px */
  --radius-sm: 0.375rem; /* 6px */
  --radius-md: 0.5rem; /* 8px */
  --radius-lg: 0.625rem; /* 10px */
  --radius-xl: 0.75rem; /* 12px */
  --radius-2xl: 1rem; /* 16px */
  --radius-3xl: 1.25rem; /* 20px */
  --radius-4xl: 1.5rem; /* 24px */
  --radius-full: 9999px;

  /* =============================================
    Spacing
  ============================================= */
  --spacing: 0.25rem; /* 4px */
}
}

@layer theme {
  :root,
  :where([data-theme]) {
    /* =============================================
      Text colors
    ============================================= */
    --color-text: var(--gray-1000);
    --color-text-inverse: var(--gray-0);

    /* =============================================
      Ring colors
    ============================================= */

    /* =============================================
      Primary colors
    ============================================= */
    /* Text */
    --color-text-primary: var(--color-text);
    /* Soft */
    --color-text-primary-soft: var(--color-text);
    --color-background-primary-soft-alt: var(--alpha-02);
    --color-border-primary-soft-alt: var(--alpha-06);
    --color-text-primary-soft-alt: var(--color-text);
    /* Surface */
    --color-text-primary-surface: var(--color-text);
    /* Solid */
    --color-text-primary-solid: var(--color-text-inverse);
    /* Outline */
    --color-text-primary-outline: var(--color-text);
    --color-text-primary-outline-hover: var(--color-text);
    /* Ghost */
    --color-text-primary-ghost: var(--color-text);
    --color-text-primary-ghost-hover: var(--color-text);
    /* Ring */
    --color-ring-primary: var(--color-ring);
    --color-ring-primary-soft: var(--color-ring-primary);
    --color-ring-primary-solid: var(--color-ring-primary);
    --color-ring-primary-outline: var(--color-ring-primary);
    --color-ring-primary-ghost: var(--color-ring-primary);

    /* =============================================
      Secondary colors
    ============================================= */
    /* Soft */
    --color-text-secondary-soft: var(--color-text);
    --color-background-secondary-soft-alt: var(--alpha-02);
    --color-border-secondary-soft-alt: var(--alpha-06);
    --color-text-secondary-soft-alt: var(--color-text);
    /* Solid */
    --color-text-secondary-solid: var(--white);
    /* Outline */
    --color-text-secondary-outline: var(--color-text-secondary);
    --color-text-secondary-outline-hover: var(--color-text);
    /* Ghost */
    --color-text-secondary-ghost: var(--color-text-secondary);
    --color-text-secondary-ghost-hover: var(--color-text);
    /* Ring */
    --color-ring-secondary: var(--color-ring);
    --color-ring-secondary-soft: var(--color-ring-secondary);
    --color-ring-secondary-solid: var(--color-ring-secondary);
    --color-ring-secondary-outline: var(--color-ring-secondary);
    --color-ring-secondary-ghost: var(--color-ring-secondary);

    /* =============================================
      Info colors
    ============================================= */
    /* Text */
    /* Soft */
    --color-background-info-soft: var(--blue-50);
    --color-background-info-soft-hover: var(--blue-75);
    --color-background-info-soft-active: var(--blue-75);
    --color-background-info-soft-alpha: var(--blue-a50);
    --color-background-info-soft-alpha-hover: var(--blue-a75);
    --color-background-info-soft-alpha-active: var(--blue-a75);
    /* Surface */
    /* Solid */
    --color-background-info-solid: var(--blue-400);
    --color-background-info-solid-hover: var(--blue-500);
    --color-background-info-solid-active: var(--blue-500);
    --color-text-info-solid: var(--white);
    /* Outline */
    --color-background-info-outline-hover: var(--blue-a25);
    --color-background-info-outline-active: var(--blue-a25);
    --color-border-info-outline: var(--blue-500);
    --color-border-info-outline-hover: var(--blue-500);
    --color-text-info-outline: var(--blue-500);
    --color-text-info-outline-hover: var(--blue-500);
    /* Ghost */
    --color-background-info-ghost-hover: var(--blue-a50);
    --color-background-info-ghost-active: var(--blue-a50);
    /* Ring */
    --color-ring-info: var(--color-ring);
    --color-ring-info-soft: var(--color-ring-info);
    --color-ring-info-solid: var(--color-ring-info);
    --color-ring-info-outline: var(--color-ring-info);
    --color-ring-info-ghost: var(--color-ring-info);

    /* =============================================
      Warning colors
    ============================================= */
    /* Text */
    /* Soft */
    --color-background-warning-soft: var(--orange-50);
    --color-background-warning-soft-hover: var(--orange-75);
    --color-background-warning-soft-active: var(--orange-75);
    --color-background-warning-soft-alpha: var(--orange-a50);
    --color-background-warning-soft-alpha-hover: var(--orange-a75);
    --color-background-warning-soft-alpha-active: var(--orange-a75);
    /* Surface */
    /* Solid */
    --color-background-warning-solid: var(--orange-500);
    --color-background-warning-solid-hover: var(--orange-600);
    --color-background-warning-solid-active: var(--orange-600);
    --color-text-warning-solid: var(--white);
    /* Outline */
    --color-background-warning-outline-hover: var(--orange-a25);
    --color-background-warning-outline-active: var(--orange-a25);
    --color-border-warning-outline: var(--orange-500);
    --color-border-warning-outline-hover: var(--orange-500);
    --color-text-warning-outline: var(--orange-500);
    --color-text-warning-outline-hover: var(--orange-500);
    /* Ghost */
    --color-background-warning-ghost-hover: var(--orange-a50);
    --color-background-warning-ghost-active: var(--orange-a50);
    --color-text-warning-ghost: var(--orange-500);
    --color-text-warning-ghost-hover: var(--orange-500);
    /* Ring */
    --color-ring-warning: var(--color-ring);
    --color-ring-warning-soft: var(--color-ring-warning);
    --color-ring-warning-solid: var(--color-ring-warning);
    --color-ring-warning-outline: var(--color-ring-warning);
    --color-ring-warning-ghost: var(--color-ring-warning);

    /* =============================================
      Caution colors
    ============================================= */
    /* Text */
    --color-text-caution-hover: var(--yellow-800);
    /* Soft */
    --color-background-caution-soft: var(--yellow-50);
    --color-background-caution-soft-hover: var(--yellow-75);
    --color-background-caution-soft-active: var(--yellow-75);
    --color-background-caution-soft-alpha: var(--yellow-a50);
    --color-background-caution-soft-alpha-hover: var(--yellow-a75);
    --color-background-caution-soft-alpha-active: var(--yellow-a75);
    /* Surface */
    /* Solid */
    --color-background-caution-solid: var(--yellow-600);
    --color-background-caution-solid-hover: var(--yellow-700);
    --color-background-caution-solid-active: var(--yellow-700);
    --color-text-caution-solid: var(--white);
    /* Outline */
    --color-background-caution-outline-hover: var(--yellow-a25);
    --color-background-caution-outline-active: var(--yellow-a25);
    --color-border-caution-outline: var(--yellow-700);
    --color-border-caution-outline-hover: var(--yellow-700);
    --color-text-caution-outline: var(--yellow-700);
    --color-text-caution-outline-hover: var(--yellow-700);
    /* Ghost */
    --color-background-caution-ghost-hover: var(--yellow-a50);
    --color-background-caution-ghost-active: var(--yellow-a50);
    --color-text-caution-ghost: var(--yellow-700);
    --color-text-caution-ghost-hover: var(--yellow-700);
    /* Ring */
    --color-ring-caution: var(--color-ring);
    --color-ring-caution-soft: var(--color-ring-caution);
    --color-ring-caution-solid: var(--color-ring-caution);
    --color-ring-caution-outline: var(--color-ring-caution);
    --color-ring-caution-ghost: var(--color-ring-caution);

    /* =============================================
      Danger colors
    ============================================= */
    /* Text */
    /* Soft */
    --color-background-danger-soft: var(--red-50);
    --color-background-danger-soft-hover: var(--red-75);
    --color-background-danger-soft-active: var(--red-75);
    --color-background-danger-soft-alpha: var(--red-a50);
    --color-background-danger-soft-alpha-hover: var(--red-a75);
    --color-background-danger-soft-alpha-active: var(--red-a75);
    /* Surface */
    /* Solid */
    --color-background-danger-solid: var(--red-500);
    --color-background-danger-solid-hover: var(--red-600);
    --color-background-danger-solid-active: var(--red-600);
    --color-text-danger-solid: var(--white);
    /* Outline */
    --color-background-danger-outline-hover: var(--red-a25);
    --color-background-danger-outline-active: var(--red-a25);
    --color-border-danger-outline: var(--red-500);
    --color-border-danger-outline-hover: var(--red-500);
    --color-text-danger-outline: var(--red-500);
    --color-text-danger-outline-hover: var(--red-500);
    /* Ghost */
    --color-background-danger-ghost-hover: var(--red-a50);
    --color-background-danger-ghost-active: var(--red-a50);
    --color-text-danger-ghost: var(--red-500);
    --color-text-danger-ghost-hover: var(--red-500);
    /* Ring */
    --color-ring-danger: var(--red-200);
    --color-ring-danger-soft: var(--color-ring-danger);
    --color-ring-danger-solid: var(--color-ring-danger);
    --color-ring-danger-outline: var(--color-ring-danger);
    --color-ring-danger-ghost: var(--color-ring-danger);

    /* =============================================
      Success colors
    ============================================= */
    /* Text */
    /* Soft */
    --color-background-success-soft: var(--green-50);
    --color-background-success-soft-hover: var(--green-75);
    --color-background-success-soft-active: var(--green-75);
    --color-background-success-soft-alpha: var(--green-a50);
    --color-background-success-soft-alpha-hover: var(--green-a75);
    --color-background-success-soft-alpha-active: var(--green-a75);
    /* Surface */
    /* Solid */
    --color-text-success-solid: var(--white);
    /* Outline */
    --color-background-success-outline-hover: var(--green-a25);
    --color-background-success-outline-active: var(--green-a25);
    --color-text-success-outline: var(--green-500);
    --color-text-success-outline-hover: var(--green-500);
    /* Ghost */
    --color-background-success-ghost-hover: var(--green-a50);
    --color-background-success-ghost-active: var(--green-a50);
    --color-text-success-ghost: var(--green-500);
    --color-text-success-ghost-hover: var(--green-500);
    /* Ring */
    --color-ring-success: var(--color-ring);
    --color-ring-success-soft: var(--color-ring-info);
    --color-ring-success-solid: var(--color-ring-info);
    --color-ring-success-outline: var(--color-ring-info);
    --color-ring-success-ghost: var(--color-ring-info);

    /* =============================================
      Discovery colors
    ============================================= */
    /* Text */
    /* Soft */
    --color-background-discovery-soft: var(--purple-50);
    --color-background-discovery-soft-hover: var(--purple-75);
    --color-background-discovery-soft-active: var(--purple-75);
    --color-background-discovery-soft-alpha: var(--purple-a50);
    --color-background-discovery-soft-alpha-hover: var(--purple-a75);
    --color-background-discovery-soft-alpha-active: var(--purple-a75);
    /* Surface */
    /* Solid */
    --color-background-discovery-solid: var(--purple-400);
    --color-background-discovery-solid-hover: var(--purple-500);
    --color-background-discovery-solid-active: var(--purple-500);
    --color-text-discovery-solid: var(--white);
    /* Outline */
    --color-background-discovery-outline-hover: var(--purple-a25);
    --color-background-discovery-outline-active: var(--purple-a25);
    --color-border-discovery-outline: var(--purple-500);
    --color-border-discovery-outline-hover: var(--purple-500);
    /* Ghost */
    --color-background-discovery-ghost-hover: var(--purple-a50);
    --color-background-discovery-ghost-active: var(--purple-a50);
    --color-text-discovery-ghost: var(--purple-500);
    --color-text-discovery-ghost-hover: var(--purple-500);
    /* Ring */
    --color-ring-discovery: var(--color-ring);
    --color-ring-discovery-soft: var(--color-ring);
    --color-ring-discovery-solid: var(--color-ring);
    --color-ring-discovery-outline: var(--color-ring);
    --color-ring-discovery-ghost: var(--color-ring);

    /* =============================================
      Disabled colors
    ============================================= */
    /* Common disabled styles that are typically shared across all semantic colors */
    --color-background-disabled: var(--alpha-05);
    --color-border-disabled: var(--alpha-06);

    /* =============================================
      Border colors
    ============================================= */

    /* =============================================
      Typography
    ============================================= */
    /* Tracking */
    --font-tracking-wide: 0em;
    --font-tracking-normal: 0em;
    --font-tracking-tight: 0em;
    /* Sizes */
    --font-heading-5xl-size: 4.5rem; /* 72px  */
    --font-heading-5xl-line-height: 4.5rem; /* 72px  */
    --font-heading-5xl-weight: var(--font-weight-semibold);
    --font-heading-5xl-tracking: var(--tracking-tight);
    --font-heading-4xl-size: 3.75rem; /* 60px  */
    --font-heading-4xl-line-height: 3.75rem; /* 60px  */
    --font-heading-4xl-weight: var(--font-weight-semibold);
    --font-heading-4xl-tracking: var(--tracking-tight);
    --font-heading-3xl-size: 3rem; /* 48px  */
    --font-heading-3xl-line-height: 3rem; /* 48px  */
    --font-heading-3xl-weight: var(--font-weight-semibold);
    --font-heading-3xl-tracking: var(--tracking-tight);
    --font-heading-2xl-size: 2.25rem; /* 36px  */
    --font-heading-2xl-line-height: 2.625rem; /* 42px */
    --font-heading-2xl-weight: var(--font-weight-semibold);
    --font-heading-2xl-tracking: var(--tracking-tight);
    --font-heading-xl-size: 2rem; /* 32px  */
    --font-heading-xl-line-height: 2.375rem; /* 38px */
    --font-heading-xl-weight: var(--font-weight-semibold);
    --font-heading-xl-tracking: var(--tracking-tight);
    --font-heading-lg-size: 1.5rem; /* 24px  */
    --font-heading-lg-line-height: 1.75rem; /* 28px */
    --font-heading-lg-weight: var(--font-weight-semibold);
    --font-heading-lg-tracking: var(--tracking-normal);
    --font-heading-md-size: 1.25rem; /* 20px  */
    --font-heading-md-line-height: 1.625rem; /* 26px */
    --font-heading-md-weight: var(--font-weight-semibold);
    --font-heading-md-tracking: var(--tracking-normal);
    --font-heading-sm-size: 1.125rem; /* 18px  */
    --font-heading-sm-line-height: 1.625rem; /* 26px */
    --font-heading-sm-weight: var(--font-weight-semibold);
    --font-heading-sm-tracking: var(--tracking-normal);
    --font-heading-xs-size: 1rem; /* 16px  */
    --font-heading-xs-line-height: 1.5rem; /* 24px */
    --font-heading-xs-weight: var(--font-weight-semibold);
    --font-heading-xs-tracking: var(--tracking-normal);
    --font-text-lg-size: 1.125rem; /* 18px  */
    --font-text-lg-line-height: 1.8125rem; /* 29px */
    --font-text-lg-weight: var(--font-weight-normal);
    --font-text-lg-tracking: var(--tracking-normal);
    --font-text-md-size: 1rem; /* 16px  */
    --font-text-md-line-height: 1.5rem; /* 24px */
    --font-text-md-weight: var(--font-weight-normal);
    --font-text-md-tracking: var(--tracking-normal);
    --font-text-sm-size: 0.875rem; /* 14px  */
    --font-text-sm-line-height: 1.25rem; /* 20px */
    --font-text-sm-weight: var(--font-weight-normal);
    --font-text-sm-tracking: var(--tracking-normal);
    --font-text-xs-size: 0.75rem; /* 12px  */
    --font-text-xs-line-height: 1.125rem; /* 18px */
    --font-text-xs-weight: var(--font-weight-normal);
    --font-text-xs-tracking: var(--tracking-wide);
    --font-text-2xs-size: 0.625rem; /* 10px  */
    --font-text-2xs-line-height: 0.875rem; /* 14px */
    --font-text-2xs-weight: var(--font-weight-normal);
    --font-text-2xs-tracking: var(--tracking-wide);
    --font-text-3xs-size: 0.5rem; /* 8px  */
    --font-text-3xs-line-height: 0.75rem; /* 12px  */
    --font-text-3xs-weight: var(--font-weight-normal);
    --font-text-3xs-tracking: var(--tracking-wide);

    /* =============================================
    Control sizes
  ============================================= */
    --control-size-3xs: 1.375rem; /* 22px */
    --control-size-2xs: 1.5rem; /* 24px */
    --control-size-xs: 1.625rem; /* 26px */
    --control-size-sm: 1.75rem; /* 28px */
    --control-size-md: 2rem; /* 32px */
    --control-size-lg: 2.25rem; /* 36px */
    --control-size-xl: 2.5rem; /* 40px */
    --control-size-2xl: 2.75rem; /* 44px */
    --control-size-3xl: 3rem; /* 48px */
    --control-gutter-2xs: 0.375rem; /* 6px */
    --control-gutter-xs: 0.5rem; /* 8px */
    --control-gutter-sm: 0.625rem; /* 10px */
    --control-gutter-md: 0.75rem; /* 12px */
    --control-gutter-lg: 0.875rem; /* 14px */
    --control-gutter-xl: 1rem; /* 16px */
    --control-gutter-pill-scaling: 1.33;
    --control-radius-sm: var(--radius-sm);
    --control-radius-md: var(--radius-md);
    --control-radius-lg: var(--radius-lg);
    --control-radius-xl: var(--radius-xl);
    --control-font-size-sm: var(--font-text-xs-size);
    --control-font-size-md: var(--font-text-sm-size);
    --control-font-size-lg: var(--font-text-md-size);
    --control-icon-size-xs: 0.875rem; /* 14px */
    --control-icon-size-sm: 1rem; /* 16px */
    --control-icon-size-md: 1.125rem; /* 18px */
    --control-icon-size-lg: 1.25rem; /* 20px */
    --control-icon-size-xl: 1.375rem; /* 22px */
    --control-icon-size-2xl: 1.5rem; /* 24px */

    /* =============================================
      Motion
    ============================================= */
    --cubic-enter: cubic-bezier(0.19, 1, 0.22, 1);
    --cubic-exit: cubic-bezier(0.8, 0, 0.4, 1);
    --cubic-exit-snappy: cubic-bezier(0.65, 0, 0.4, 1); /* less inertia delay */
    --cubic-move: cubic-bezier(0.65, 0, 0.35, 1);
    --transition-duration-basic: 150ms;
    --transition-ease-basic: ease;

    /* =============================================
      Scrollbar
    ============================================= */
    --scrollbar-color: var(--alpha-30);

    /* =============================================
      Shadows
    ============================================= */
    --shadow-hairline: 0 0 0 var(--shadow-hairline-width) var(--shadow-hairline-color);
    /* 100 */
    --shadow-100: var(--elevation-100-geo) rgb(var(--shadow-color) / var(--shadow-alpha-100));
    --shadow-100-strong: var(--elevation-100-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-100) * 1.25));
    --shadow-100-stronger: var(--elevation-100-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-100) * 1.6));
    /* 200 */
    --shadow-200: var(--elevation-200-geo) rgb(var(--shadow-color) / var(--shadow-alpha-200));
    --shadow-200-strong: var(--elevation-200-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-200) * 1.25));
    --shadow-200-stronger: var(--elevation-200-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-200) * 1.6));
    /* 300 */
    --shadow-300: var(--elevation-300-geo) rgb(var(--shadow-color) / var(--shadow-alpha-300));
    --shadow-300-strong: var(--elevation-300-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-300) * 1.25));
    --shadow-300-stronger: var(--elevation-300-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-300) * 1.6));
    /* 400 */
    --shadow-400: var(--elevation-400-geo) rgb(var(--shadow-color) / var(--shadow-alpha-400));
    --shadow-400-strong: var(--elevation-400-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-400) * 1.25));
    --shadow-400-stronger: var(--elevation-400-geo)
      rgb(var(--shadow-color) / calc(var(--shadow-alpha-400) * 1.6));

    /* =============================================
      Surfaces
    ============================================= */
  }
  :where(:root), :where([data-theme="light"]) {
    --color-text-secondary: var(--gray-500);
    --color-text-tertiary: var(--gray-400);
    --color-ring: var(--blue-500);
    --color-background-primary-soft: var(--gray-100);
    --color-background-primary-soft-hover: var(--gray-150);
    --color-background-primary-soft-active: var(--gray-200);
    --color-background-primary-soft-alpha: var(--alpha-08);
    --color-background-primary-soft-alpha-hover: var(--alpha-12);
    --color-background-primary-soft-alpha-active: var(--alpha-16);
    --color-background-primary-surface: var(--alpha-05);
    --color-border-primary-surface: var(--alpha-05);
    --color-background-primary-solid: var(--gray-900);
    --color-background-primary-solid-hover: var(--gray-700);
    --color-background-primary-solid-active: var(--gray-600);
    --color-background-primary-outline-hover: var(--alpha-02);
    --color-background-primary-outline-active: var(--alpha-04);
    --color-border-primary-outline: var(--alpha-16);
    --color-border-primary-outline-hover: var(--alpha-20);
    --color-background-primary-ghost-hover: var(--alpha-08);
    --color-background-primary-ghost-active: var(--alpha-12);
    --color-background-secondary-soft: var(--gray-100);
    --color-background-secondary-soft-hover: var(--gray-150);
    --color-background-secondary-soft-active: var(--gray-200);
    --color-background-secondary-soft-alpha: var(--alpha-08);
    --color-background-secondary-soft-alpha-hover: var(--alpha-12);
    --color-background-secondary-soft-alpha-active: var(--alpha-16);
    --color-background-secondary-solid: var(--gray-500);
    --color-background-secondary-solid-hover: var(--gray-600);
    --color-background-secondary-solid-active: var(--gray-700);
    --color-background-secondary-outline-hover: var(--alpha-02);
    --color-background-secondary-outline-active: var(--alpha-04);
    --color-border-secondary-outline: var(--alpha-16);
    --color-border-secondary-outline-hover: var(--alpha-20);
    --color-background-secondary-ghost-hover: var(--alpha-08);
    --color-background-secondary-ghost-active: var(--alpha-12);
    --color-text-info: var(--blue-500);
    --color-text-info-soft: var(--blue-600);
    --color-background-info-surface: var(--blue-a25);
    --color-border-info-surface: var(--blue-a25);
    --color-text-info-surface: var(--blue-600);
    --color-text-info-ghost: var(--blue-500);
    --color-text-info-ghost-hover: var(--blue-500);
    --color-text-warning: var(--orange-700);
    --color-text-warning-soft: var(--orange-700);
    --color-background-warning-surface: var(--orange-a25);
    --color-border-warning-surface: var(--orange-a25);
    --color-text-warning-surface: var(--orange-700);
    --color-text-caution: var(--yellow-700);
    --color-text-caution-soft: var(--yellow-800);
    --color-background-caution-surface: var(--yellow-a25);
    --color-border-caution-surface: var(--yellow-a25);
    --color-text-caution-surface: var(--yellow-800);
    --color-text-danger: var(--red-700);
    --color-text-danger-soft: var(--red-600);
    --color-background-danger-surface: var(--red-a25);
    --color-border-danger-surface: var(--red-a25);
    --color-text-danger-surface: var(--red-600);
    --color-text-success: var(--green-700);
    --color-text-success-soft: var(--green-600);
    --color-background-success-surface: var(--green-a25);
    --color-border-success-surface: var(--green-a25);
    --color-text-success-surface: var(--green-600);
    --color-background-success-solid: var(--green-500);
    --color-background-success-solid-hover: var(--green-500);
    --color-background-success-solid-active: var(--green-500);
    --color-border-success-outline: var(--green-500);
    --color-border-success-outline-hover: var(--green-500);
    --color-text-discovery: var(--purple-700);
    --color-text-discovery-soft: var(--purple-600);
    --color-background-discovery-surface: var(--purple-a25);
    --color-border-discovery-surface: var(--purple-a25);
    --color-text-discovery-surface: var(--purple-600);
    --color-text-discovery-outline: var(--purple-500);
    --color-text-discovery-outline-hover: var(--purple-500);
    --color-text-disabled: var(--gray-400);
    --color-border-subtle: var(--alpha-05);
    --color-border: var(--alpha-10);
    --color-border-strong: var(--alpha-15);
    --shadow: 0 10px 15px -3px rgba(0 0 0 / 10%),
      0 4px 6px -4px rgba(0 0 0 / 10%);
    --color-surface: var(--gray-0);
    --color-surface-secondary: var(--gray-50);
    --color-surface-tertiary: var(--gray-75);
    --color-surface-elevated: var(--gray-0);
    --color-surface-elevated-secondary: var(--gray-50)
  }
  :where([data-theme="dark"]) {
    --color-text-secondary: var(--gray-700);
    --color-text-tertiary: var(--gray-600);
    --color-ring: var(--blue-400);
    --color-background-primary-soft: var(--gray-300);
    --color-background-primary-soft-hover: var(--gray-350);
    --color-background-primary-soft-active: var(--gray-400);
    --color-background-primary-soft-alpha: var(--alpha-12);
    --color-background-primary-soft-alpha-hover: var(--alpha-16);
    --color-background-primary-soft-alpha-active: var(--alpha-20);
    --color-background-primary-surface: var(--alpha-08);
    --color-border-primary-surface: var(--alpha-08);
    --color-background-primary-solid: var(--gray-950);
    --color-background-primary-solid-hover: var(--gray-900);
    --color-background-primary-solid-active: var(--gray-850);
    --color-background-primary-outline-hover: var(--alpha-04);
    --color-background-primary-outline-active: var(--alpha-06);
    --color-border-primary-outline: var(--alpha-25);
    --color-border-primary-outline-hover: var(--alpha-30);
    --color-background-primary-ghost-hover: var(--alpha-12);
    --color-background-primary-ghost-active: var(--alpha-16);
    --color-background-secondary-soft: var(--gray-300);
    --color-background-secondary-soft-hover: var(--gray-350);
    --color-background-secondary-soft-active: var(--gray-400);
    --color-background-secondary-soft-alpha: var(--alpha-12);
    --color-background-secondary-soft-alpha-hover: var(--alpha-16);
    --color-background-secondary-soft-alpha-active: var(--alpha-20);
    --color-background-secondary-solid: var(--gray-400);
    --color-background-secondary-solid-hover: var(--gray-450);
    --color-background-secondary-solid-active: var(--gray-500);
    --color-background-secondary-outline-hover: var(--alpha-04);
    --color-background-secondary-outline-active: var(--alpha-06);
    --color-border-secondary-outline: var(--alpha-25);
    --color-border-secondary-outline-hover: var(--alpha-30);
    --color-background-secondary-ghost-hover: var(--alpha-12);
    --color-background-secondary-ghost-active: var(--alpha-16);
    --color-text-info: var(--blue-200);
    --color-text-info-soft: var(--blue-300);
    --color-background-info-surface: var(--blue-a50);
    --color-border-info-surface: var(--blue-a50);
    --color-text-info-surface: var(--blue-300);
    --color-text-info-ghost: var(--blue-200);
    --color-text-info-ghost-hover: var(--blue-200);
    --color-text-warning: var(--orange-500);
    --color-text-warning-soft: var(--orange-400);
    --color-background-warning-surface: var(--orange-a50);
    --color-border-warning-surface: var(--orange-a50);
    --color-text-warning-surface: var(--orange-400);
    --color-text-caution: var(--yellow-500);
    --color-text-caution-soft: var(--yellow-400);
    --color-background-caution-surface: var(--yellow-a50);
    --color-border-caution-surface: var(--yellow-a50);
    --color-text-caution-surface: var(--yellow-400);
    --color-text-danger: var(--red-500);
    --color-text-danger-soft: var(--red-400);
    --color-background-danger-surface: var(--red-a50);
    --color-border-danger-surface: var(--red-a50);
    --color-text-danger-surface: var(--red-400);
    --color-text-success: var(--green-400);
    --color-text-success-soft: var(--green-400);
    --color-background-success-surface: var(--green-a50);
    --color-border-success-surface: var(--green-a50);
    --color-text-success-surface: var(--green-400);
    --color-background-success-solid: var(--green-600);
    --color-background-success-solid-hover: var(--green-600);
    --color-background-success-solid-active: var(--green-600);
    --color-border-success-outline: var(--green-600);
    --color-border-success-outline-hover: var(--green-600);
    --color-text-discovery: var(--purple-500);
    --color-text-discovery-soft: var(--purple-200);
    --color-background-discovery-surface: var(--purple-a50);
    --color-border-discovery-surface: var(--purple-a50);
    --color-text-discovery-surface: var(--purple-200);
    --color-text-discovery-outline: var(--purple-400);
    --color-text-discovery-outline-hover: var(--purple-400);
    --color-text-disabled: var(--gray-500);
    --color-border-subtle: var(--alpha-06);
    --color-border: var(--alpha-12);
    --color-border-strong: var(--alpha-20);
    --shadow: 0 10px 15px -3px rgba(0 0 0 / 20%),
      0 4px 6px -4px rgba(0 0 0 / 20%);
    --color-surface: var(--gray-200);
    --color-surface-secondary: var(--gray-100);
    --color-surface-tertiary: var(--gray-50);
    --color-surface-elevated: var(--gray-300);
    --color-surface-elevated-secondary: var(--gray-400)
  }
}

@layer theme {
  :root,
  :where([data-theme]) {
    /* =============================================
      Alert
    ============================================= */
    --alert-border-radius: var(--radius-xl);
    --alert-gap: calc(var(--spacing) * 3);
    --alert-gutter: calc(var(--spacing) * 4);
    --alert-font-size: var(--font-text-sm-size);
    --alert-line-height: var(--font-text-sm-line-height);
    --alert-title-font-weight: var(--font-weight-semibold);

    /* =============================================
      Avatar
    ============================================= */
    --avatar-radius: var(--radius-full);
    --avatar-size: 28px;
    --avatar-font-size-scaling: 0.5;
    --avatar-overflow-font-size-scaling-one: 0.45;
    --avatar-overflow-font-size-scaling-two: 0.37;
    --avatar-overflow-font-size-scaling-three: 0.3;

    /* =============================================
      AvatarGroup
    ============================================= */
    --avatar-group-cutout-width: 3px;
    --avatar-group-cutout-color: var(--color-surface);
    --avatar-group-spacing: -8px;

    /* =============================================
      Badge
    ============================================= */
    --badge-gutter-sm: calc(var(--control-gutter-2xs) - 1px);
    --badge-gutter-md: var(--control-gutter-2xs);
    --badge-gutter-lg: var(--control-gutter-xs);
    --badge-size-sm: calc(var(--control-size-3xs) - 2px);
    --badge-size-md: var(--control-size-3xs);
    --badge-size-lg: var(--control-size-2xs);
    --badge-radius-sm: var(--radius-xs);
    --badge-radius-md: var(--radius-xs);
    --badge-radius-lg: var(--radius-sm);
    --badge-font-size-sm: var(--font-text-xs-size);
    --badge-font-size-md: var(--font-text-sm-size);
    --badge-font-size-lg: var(--font-text-sm-size);
    --badge-tracking-sm: var(--tracking-wide);
    --badge-tracking-md: var(--tracking-normal);
    --badge-tracking-lg: var(--tracking-normal);
    --badge-font-weight-sm: var(--font-weight-semibold);
    --badge-font-weight-md: var(--font-weight-semibold);
    --badge-font-weight-lg: var(--font-weight-semibold);
    --badge-icon-font-size-sm: var(--font-text-xs-size);
    --badge-icon-font-size-md: var(--font-text-md-size);
    --badge-icon-font-size-lg: var(--font-text-md-size);
    --badge-indicator-size-sm: var(--font-text-xs-size);
    --badge-indicator-size-md: var(--font-text-xs-size);
    --badge-indicator-size-lg: var(--font-text-sm-size);

    /* =============================================
      Button
    ============================================= */
    --button-gap-sm: 3px;
    --button-gap-md: 4px;
    --button-gap-lg: 6px;
    --button-font-weight: var(--font-weight-medium);

    /* =============================================
      Input
    ============================================= */
    --input-gap-xs: 4px;
    --input-gap-sm: 6px;
    --input-gap-md: 8px;
    --input-gap-lg: 10px;
    --input-text-color: var(--color-text);
    --input-placeholder-text-color: var(--color-text-tertiary);
    --input-outline-border-color: var(--color-border-primary-outline);
    --input-outline-border-color-focus: var(--alpha-50);
    --input-soft-background-color: var(--color-background-primary-soft-alpha);
    --input-soft-border-color-focus: var(--alpha-20);

    /* =============================================
      Link
    ============================================= */
    --link-font-weight: inherit;
    --link-gap: calc(var(--spacing) * 0.5);
    --link-radius: var(--radius-sm);
    --link-underline-decoration-offset: 0.1em;

    /* =============================================
      Chat
    ============================================= */
    --chat-max-width: 800px;
    --chat-gutter: calc(var(--spacing) * 5);
    --chat-background-color: var(--color-surface);
    --thread-gutter: calc(var(--spacing) * 4); /* 12px (composer gutter) + 4px (input inset) */
    --composer-gutter: calc(var(--spacing) * 3);
    --composer-compact-gutter: calc(var(--spacing) * 2);
    --composer-radius: var(--radius-4xl);
    --composer-background-color: var(--color-surface-elevated);
    --smoothing-background-color: var(--color-surface);
    --user-message-text-color: var(--color-text);
    --source-list-gutter: var(--thread-gutter);

    /* =============================================
      CodeBlock
    ============================================= */
    --codeblock-background-color: var(--gray-25);
    --codeblock-syntax-4: var(--pink-500);

    /* =============================================
      Dialog
    ============================================= */
    --dialog-min-width: 250px;
    --dialog-max-width: 450px;
    --dialog-container-inner-padding: calc(var(--spacing) * 5);
    --dialog-backdrop-fade-background: color-mix(in oklab, var(--color-surface-elevated) 60%, transparent);

    /* =============================================
      Menu
    ============================================= */
    --menu-gutter: calc(var(--spacing) * 1.5);
    --menu-radius: var(--radius-xl);
    --menu-font-size: var(--font-text-sm-size);
    /* Important that this line-height is ~an even number for centering with icons */
    --menu-line-height: var(--font-text-sm-line-height);
    --menu-item-padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 2);
    --menu-item-gap: calc(var(--spacing) * 1.5);
    --menu-separator-gutter: var(--menu-gutter) calc(-1 * var(--menu-gutter));
    --menu-separator-background-color: var(--color-border);
    --menu-radio-indicator-size: var(--font-text-lg-size);
    --menu-radio-indicator-hole-size: var(--font-text-3xs-size);
    --menu-checkbox-indicator-size: var(--font-text-lg-size);

    /* =============================================
      Modal
    ============================================= */
    --modal-container-inner-padding: calc(var(--spacing) * 5);

    /* =============================================
      Popover
    ============================================= */
    --popover-radius: var(--radius-xl);

    /* =============================================
      RadioGroup
    ============================================= */
    --radio-group-col-gap: calc(var(--spacing) * 2.5);
    --radio-group-row-gap: calc(var(--spacing) * 5);
    --radio-group-item-gap: calc(var(--spacing) * 1.5);
    --radio-group-item-font-size: var(--font-text-sm-size);
    --radio-group-item-line-height: var(--font-text-sm-line-height);
    --radio-group-indicator-size: var(--font-text-md-size);
    --radio-group-indicator-border-color: var(--color-border-primary-outline);
    --radio-group-indicator-border-color-hover: var(--alpha-25);
    --radio-group-indicator-background-color: var(--color-background-primary-solid);
    --radio-group-indicator-hole-size: 0.375rem;
    --radio-group-indicator-hole-background-color: var(--color-text-primary-solid);

    /* =============================================
      Segmented Control
    ============================================= */
    --segmented-control-gap: 2px;
    --segmented-control-gutter: 2px;
    --segmented-control-font-weight: var(--font-weight-semibold);
    --segmented-control-thumb-shadow: 0 1px 4px -1px rgb(0 0 0 / 20%);
    --segmented-control-option-highlight-gutter: 1px;

    /* =============================================
      SelectControl
    ============================================= */
    --select-control-font-weight: var(--font-weight-medium);

    /* =============================================
      Slider
    ============================================= */

    /* =============================================
      Switch
    ============================================= */
    --switch-track-width: 32px;
    --switch-track-height: 19px;
    --switch-thumb-offset: 3px;
    --switch-thumb-size: calc(var(--switch-track-height) - 2 * var(--switch-thumb-offset));
    --switch-thumb-shadow: 0 1px 2px rgb(0 0 0 / 20%);
    --switch-label-gap: calc(var(--spacing) * 2);
  }
  :where(:root), :where([data-theme="light"]) {
    --avatar-image-border-color: var(--alpha-04);
    --input-outline-border-color-hover: var(--alpha-25);
    --input-border-color-invalid: var(--red-500);
    --link-primary-text-color: var(--blue-500);
    --link-primary-text-color-hover: var(--blue-800);
    --user-message-background-color: var(--alpha-05);
    --codeblock-syntax-1: #c0660d;
    --codeblock-syntax-2: var(--blue-500);
    --codeblock-syntax-3: var(--green-600);
    --codeblock-syntax-5: var(--purple-500);
    --dialog-backdrop-dim-background: rgb(0 0 0 / 30%);
    --menu-item-background-color: var(--alpha-08);
    --modal-backdrop-background: rgb(0 0 0 / 30%);
    --segmented-control-background: var(--gray-100);
    --segmented-control-thumb-background: var(--gray-0);
    --segmented-control-option-highlight-background-color: var(--gray-200);
    --slider-track-color: var(--gray-150);
    --slider-range-color: var(--gray-450);
    --switch-track-color: var(--gray-150);
    --switch-track-color-hover: var(--gray-200);
    --switch-track-color-checked: var(--gray-900);
    --switch-track-color-checked-disabled: var(--gray-300);
    --switch-track-color-disabled: var(--gray-100);
    --switch-thumb-color: var(--gray-0);
    --switch-thumb-color-disabled: var(--gray-0);
  }
  :where([data-theme="dark"]) {
    --avatar-image-border-color: var(--alpha-15);
    --input-outline-border-color-hover: var(--alpha-30);
    --input-border-color-invalid: var(--red-600);
    --link-primary-text-color: var(--blue-300);
    --link-primary-text-color-hover: var(--blue-400);
    --user-message-background-color: var(--alpha-08);
    --codeblock-syntax-1: var(--yellow-100);
    --codeblock-syntax-2: var(--blue-200);
    --codeblock-syntax-3: var(--green-300);
    --codeblock-syntax-5: var(--purple-300);
    --dialog-backdrop-dim-background: rgb(0 0 0 / 50%);
    --menu-item-background-color: var(--alpha-10);
    --modal-backdrop-background: rgb(0 0 0 / 50%);
    --segmented-control-background: var(--gray-0);
    --segmented-control-thumb-background: var(--gray-300);
    --segmented-control-option-highlight-background-color: var(--gray-300);
    --slider-track-color: var(--gray-400);
    --slider-range-color: var(--gray-600);
    --switch-track-color: var(--gray-400);
    --switch-track-color-hover: var(--gray-450);
    --switch-track-color-checked: var(--blue-400);
    --switch-track-color-checked-disabled: var(--blue-700);
    --switch-track-color-disabled: var(--gray-300);
    --switch-thumb-color: var(--gray-1000);
    --switch-thumb-color-disabled: var(--gray-800);
  }
}

/* A subset of Tailwind v4's "preflight" reset.
   The Apps SDK UI components are written against Tailwind's preflight, which they assume
   has already zeroed browser defaults on buttons, links, headings and lists. We do not use
   Tailwind, so we supply the parts the components rely on. We leave margin and padding
   alone on layout elements: the SDK's own Markdown and our site layer set those. */
@layer base{
  *,::before,::after{box-sizing:border-box;border:0 solid}
  html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--font-sans);-webkit-tap-highlight-color:transparent}
  :where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit;margin:0}
  :where(p,figure,dl,dd,hr){margin:0}
  :where(hr){height:0;color:inherit;border-top-width:1px}
  :where(a){color:inherit;text-decoration:inherit}
  :where(b,strong){font-weight:bolder}
  :where(code,kbd,samp,pre){font-family:var(--font-mono);font-size:1em}
  :where(small){font-size:80%}
  :where(ol,ul,menu){list-style:none;margin:0;padding:0}
  :where(table){text-indent:0;border-color:inherit;border-collapse:collapse}
  :where(button,input,select,optgroup,textarea){
    font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;
    color:inherit;border-radius:0;background-color:transparent;opacity:1;margin:0;padding:0;
  }
  :where(button,[type="button"],[type="reset"],[type="submit"]){appearance:button}
  :where(summary){display:list-item}
  :where(img,svg,video,canvas,audio,iframe,embed,object){vertical-align:middle}
  :where([hidden]:not([hidden="until-found"])){display:none !important}
}

/* =============================================
  Opinionated resets
============================================= */
@layer base {
  html,
  :host {
    /* Disallow browsers from synthesizing bold weights when missing */
    font-synthesis-weight: none;
  }

  textarea {
    /* Prevent resizing by default */
    resize: none;
  }

  img,
  svg {
    flex-grow: 0;
    /* Prevent flexbox from forcing visual assets to shrink/grow size unintentionally */
    flex-shrink: 0;
  }

  input,
  textarea,
  select,
  optgroup {
    /* Normalize mobile Safari styles */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    box-shadow: none;
    /* Prevent Firefox autofill coloring (preview and confirmed modes) */
    filter: none;
    /* Normalize default outline offset and width in Safari */
    outline-offset: 0;
    outline-width: 2px;
  }

  /*
   * Prevent non-standard gestures on interactive Elements, like double-tap to zoom.
   * Single taps will be dispatched immediately, instead of delayed.
   */
  a,
  button,
  input,
  label,
  select,
  textarea,
  :where([aria-role="button"]) {
    touch-action: manipulation;
  }

  button {
    /* Reset default transform */
    text-transform: none;
    /* Remove gap below button in certain conditions where inline-block is used */
    vertical-align: middle;
  }

  button:not(:disabled),
  [role="button"]:not(:disabled) {
    /* Normalize cursor to pointer type */
    cursor: pointer;
  }

  pre {
    /* Avoid overflow by default in preformatted text */
    white-space: pre-wrap;
  }

  table {
    /* Remove gaps between table borders by default */
    border-spacing: 0;
  }

  /* Remove default quote elements */
  blockquote,
  q {
    quotes: none;
  }

  blockquote::before,
  blockquote::after,
  q::before,
  q::after {
    content: none;
  }
}

/* =============================================
  Directives
============================================= */





/* =============================================
  Opinionated globals
============================================= */
@layer base {
  html,
  :host {
    /* Apply default color */
    color: var(--color-text);
    /* Smooth font rendering by default */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Apply default letter-spacing */
    letter-spacing: var(--tracking-normal);
  }

  [data-theme="light"] {
    color-scheme: light;
  }

  [data-theme="dark"] {
    color-scheme: dark;
  }

  * {
    /* Aesthetic scrollbar defaults */
    scrollbar-color: var(--scrollbar-color) transparent;
    scrollbar-width: thin;
  }

  /* All exiting <TransitionGroup> components should be non-interactive */
  [data-exiting] {
    pointer-events: none;
  }

  /* Default placeholder text color */
  ::-moz-placeholder {
    color: var(--color-text-tertiary);
  }
  ::placeholder {
    color: var(--color-text-tertiary);
  }

  /* Use semibold weight as the defacto bold */
  b,
  strong {
    font-weight: var(--font-weight-semibold);
  }
}

@layer components {.Alert {
  display: flex;
  align-items: center;
  gap: var(--alert-gap);
  width: 100%;
  padding: var(--alert-gutter);
  border-radius: var(--alert-border-radius);
  font-size: var(--alert-font-size);
  line-height: var(--alert-line-height);
}

  .Alert:where([data-actions-placement="bottom"]) {
    align-items: flex-start;
  }

  /* =============================================
    Variants
  ============================================= */
  .Alert[data-variant="soft"] {
    background-color: var(--alert-background-color);
    box-shadow: 0 0 0 1px var(--alert-border-color) inset;
    color: var(--alert-text-color);
  }

    .Alert[data-variant="soft"]:where([data-color="primary"]) {
      --alert-background-color: var(--color-background-primary-surface);
      --alert-border-color: var(--color-border-primary-surface);
      --alert-text-color: var(--color-text);
    }

    .Alert[data-variant="soft"]:where([data-color="success"]) {
      --alert-background-color: var(--color-background-success-surface);
      --alert-border-color: var(--color-border-success-surface);
      --alert-text-color: var(--color-text-success-surface);
    }

    .Alert[data-variant="soft"]:where([data-color="warning"]) {
      --alert-background-color: var(--color-background-warning-surface);
      --alert-border-color: var(--color-border-warning-surface);
      --alert-text-color: var(--color-text-warning-surface);
    }

    .Alert[data-variant="soft"]:where([data-color="caution"]) {
      --alert-background-color: var(--color-background-caution-surface);
      --alert-border-color: var(--color-border-caution-surface);
      --alert-text-color: var(--color-text-caution-surface);
    }

    .Alert[data-variant="soft"]:where([data-color="danger"]) {
      --alert-background-color: var(--color-background-danger-surface);
      --alert-border-color: var(--color-border-danger-surface);
      --alert-text-color: var(--color-text-danger-surface);
    }

    .Alert[data-variant="soft"]:where([data-color="info"]) {
      --alert-background-color: var(--color-background-info-surface);
      --alert-border-color: var(--color-border-info-surface);
      --alert-text-color: var(--color-text-info-surface);
    }

    .Alert[data-variant="soft"]:where([data-color="discovery"]) {
      --alert-background-color: var(--color-background-discovery-surface);
      --alert-border-color: var(--color-border-discovery-surface);
      --alert-text-color: var(--color-text-discovery-surface);
    }

  .Alert[data-variant="solid"] {
    background-color: var(--alert-background-color);
    color: var(--alert-text-color);
  }

    .Alert[data-variant="solid"]:where([data-color="primary"]) {
      --alert-background-color: var(--color-background-primary-solid);
      --alert-text-color: var(--color-text-primary-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="success"]) {
      --alert-background-color: var(--color-background-success-solid);
      --alert-text-color: var(--color-text-success-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="warning"]) {
      --alert-background-color: var(--color-background-warning-solid);
      --alert-text-color: var(--color-text-warning-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="caution"]) {
      --alert-background-color: var(--color-background-caution-solid);
      --alert-text-color: var(--color-text-caution-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="danger"]) {
      --alert-background-color: var(--color-background-danger-solid);
      --alert-text-color: var(--color-text-danger-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="info"]) {
      --alert-background-color: var(--color-background-info-solid);
      --alert-text-color: var(--color-text-info-solid);
    }

    .Alert[data-variant="solid"]:where([data-color="discovery"]) {
      --alert-background-color: var(--color-background-discovery-solid);
      --alert-text-color: var(--color-text-discovery-solid);
    }

  .Alert[data-variant="outline"] {
    box-shadow: 0 0 0 1px var(--alert-border-color) inset;
    color: var(--alert-text-color);
  }

    .Alert[data-variant="outline"]:where([data-color="primary"]) {
      --alert-border-color: var(--color-border);
      --alert-text-color: var(--color-text);
    }

    .Alert[data-variant="outline"]:where([data-color="success"]) {
      --alert-border-color: var(--color-border-success-outline);
      --alert-text-color: var(--color-text-success-outline);
    }

    .Alert[data-variant="outline"]:where([data-color="warning"]) {
      --alert-border-color: var(--color-border-warning-outline);
      --alert-text-color: var(--color-text-warning-outline);
    }

    .Alert[data-variant="outline"]:where([data-color="caution"]) {
      --alert-border-color: var(--color-border-caution-outline);
      --alert-text-color: var(--color-text-caution-outline);
    }

    .Alert[data-variant="outline"]:where([data-color="danger"]) {
      --alert-border-color: var(--color-border-danger-outline);
      --alert-text-color: var(--color-text-danger-outline);
    }

    .Alert[data-variant="outline"]:where([data-color="info"]) {
      --alert-border-color: var(--color-border-info-outline);
      --alert-text-color: var(--color-text-info-outline);
    }

    .Alert[data-variant="outline"]:where([data-color="discovery"]) {
      --alert-border-color: var(--color-border-discovery-outline);
      --alert-text-color: var(--color-text-discovery-outline);
    }.Content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1;
  min-width: 0;
}

  :where(.Alert[data-actions-placement="bottom"]) .Content {
    display: block;
  }
  .Indicator svg {
    width: var(--alert-indicator-size, 20px);
    height: var(--alert-indicator-size, 20px);
  }.Message {
  flex: 1;
  min-width: 0;
}.Title {
  font-weight: var(--alert-title-font-weight);
  text-wrap: pretty;
}

  /* Slight spacing when paired with a description */
  .Title ~ .Description {
    margin-top: 2px;
  }.Description {
  opacity: 1;
  text-wrap: pretty;
}.Actions {
  display: flex;
  gap: calc(var(--spacing) * 2);
}

  :where(.Alert[data-actions-placement="end"]) .Actions {
    align-self: center;
    /* Additional padding between right side or actions */
    margin-left: var(--alert-gutter);
  }

  :where(.Alert[data-actions-placement="bottom"]) .Actions {
    margin-top: var(--alert-gutter);
  }
}

@layer components {.Badge {
  --indicator-size: var(--badge-indicator-size);

  display: inline-flex;
  align-items: center;
  gap: calc(var(--spacing) * 1);
  height: var(--badge-size);
  padding: 0 var(--badge-gutter);
  border-radius: var(--badge-radius);
  font-size: var(--badge-font-size);
  font-weight: var(--badge-font-weight);
  letter-spacing: var(--badge-tracking);
  white-space: nowrap;
}

  .Badge svg {
    font-size: var(--badge-icon-font-size);
  }

    :where(.Badge svg:first-child:not(:only-child)) {
      margin-left: var(--badge-icon-offset, -1px);
    }

    :where(.Badge svg:last-child:not(:only-child)) {
      margin-right: var(--badge-icon-offset, -1px);
    }

  /* =============================================
    Variants
  ============================================= */
  .Badge[data-variant="soft"] {
    background-color: var(--badge-background-color);
    color: var(--badge-text-color);
  }

    .Badge[data-variant="soft"]:where([data-color="secondary"]) {
      --badge-background-color: var(--color-background-secondary-soft-alpha);
      --badge-text-color: var(--color-text-secondary-soft);
    }

    .Badge[data-variant="soft"]:where([data-color="success"]) {
      --badge-background-color: var(--color-background-success-soft-alpha);
      --badge-text-color: var(--color-text-success-soft);
    }

    .Badge[data-variant="soft"]:where([data-color="warning"]) {
      --badge-background-color: var(--color-background-warning-soft-alpha);
      --badge-text-color: var(--color-text-warning-soft);
    }

    .Badge[data-variant="soft"]:where([data-color="danger"]) {
      --badge-background-color: var(--color-background-danger-soft-alpha);
      --badge-text-color: var(--color-text-danger-soft);
    }

    .Badge[data-variant="soft"]:where([data-color="info"]) {
      --badge-background-color: var(--color-background-info-soft-alpha);
      --badge-text-color: var(--color-text-info-soft);
    }

    .Badge[data-variant="soft"]:where([data-color="discovery"]) {
      --badge-background-color: var(--color-background-discovery-soft-alpha);
      --badge-text-color: var(--color-text-discovery-soft);
    }

  .Badge[data-variant="solid"] {
    background-color: var(--badge-background-color);
    color: var(--badge-text-color);
  }

    .Badge[data-variant="solid"]:where([data-color="secondary"]) {
      --badge-background-color: var(--color-background-secondary-solid);
      --badge-text-color: var(--color-text-secondary-solid);
    }

    .Badge[data-variant="solid"]:where([data-color="success"]) {
      --badge-background-color: var(--color-background-success-solid);
      --badge-text-color: var(--color-text-success-solid);
    }

    .Badge[data-variant="solid"]:where([data-color="warning"]) {
      --badge-background-color: var(--color-background-warning-solid);
      --badge-text-color: var(--color-text-warning-solid);
    }

    .Badge[data-variant="solid"]:where([data-color="danger"]) {
      --badge-background-color: var(--color-background-danger-solid);
      --badge-text-color: var(--color-text-danger-solid);
    }

    .Badge[data-variant="solid"]:where([data-color="info"]) {
      --badge-background-color: var(--color-background-info-solid);
      --badge-text-color: var(--color-text-info-solid);
    }

    .Badge[data-variant="solid"]:where([data-color="discovery"]) {
      --badge-background-color: var(--color-background-discovery-solid);
      --badge-text-color: var(--color-text-discovery-solid);
    }

  .Badge[data-variant="outline"] {
    /* Avoids additive `width` compared to other variants */
    box-shadow: 0 0 0 1px var(--badge-border-color) inset;
    color: var(--badge-text-color);
  }

    .Badge[data-variant="outline"]:where([data-color="secondary"]) {
      --badge-border-color: var(--color-border-secondary-outline);
      --badge-text-color: var(--color-text-secondary-outline);
    }

    .Badge[data-variant="outline"]:where([data-color="success"]) {
      --badge-border-color: var(--color-border-success-outline);
      --badge-text-color: var(--color-text-success-outline);
    }

    .Badge[data-variant="outline"]:where([data-color="warning"]) {
      --badge-border-color: var(--color-border-warning-outline);
      --badge-text-color: var(--color-text-warning-outline);
    }

    .Badge[data-variant="outline"]:where([data-color="danger"]) {
      --badge-border-color: var(--color-border-danger-outline);
      --badge-text-color: var(--color-text-danger-outline);
    }

    .Badge[data-variant="outline"]:where([data-color="info"]) {
      --badge-border-color: var(--color-border-info-outline);
      --badge-text-color: var(--color-text-info-outline);
    }

    .Badge[data-variant="outline"]:where([data-color="discovery"]) {
      --badge-border-color: var(--color-border-discovery-outline);
      --badge-text-color: var(--color-text-discovery-outline);
    }

  /* =============================================
    Sizes
  ============================================= */
  .Badge:where([data-size="sm"]) {
    --badge-size: var(--badge-size-sm);
    --badge-gutter: var(--badge-gutter-sm);
    --badge-font-size: var(--badge-font-size-sm);
    --badge-font-weight: var(--badge-font-weight-sm);
    --badge-tracking: var(--badge-tracking-sm);
    --badge-radius: var(--badge-radius-sm);
    --badge-icon-font-size: var(--badge-icon-font-size-sm);
    --badge-indicator-size: var(--badge-indicator-size-sm);
  }

  .Badge:where([data-size="md"]) {
    --badge-size: var(--badge-size-md);
    --badge-gutter: var(--badge-gutter-md);
    --badge-font-size: var(--badge-font-size-md);
    --badge-font-weight: var(--badge-font-weight-md);
    --badge-tracking: var(--badge-tracking-md);
    --badge-radius: var(--badge-radius-md);
    --badge-icon-font-size: var(--badge-icon-font-size-md);
    --badge-indicator-size: var(--badge-indicator-size-md);
  }

  .Badge:where([data-size="lg"]) {
    --badge-size: var(--badge-size-lg);
    --badge-gutter: var(--badge-gutter-lg);
    --badge-font-size: var(--badge-font-size-lg);
    --badge-font-weight: var(--badge-font-weight-lg);
    --badge-tracking: var(--badge-tracking-lg);
    --badge-radius: var(--badge-radius-lg);
    --badge-icon-font-size: var(--badge-icon-font-size-lg);
    --badge-indicator-size: var(--badge-indicator-size-lg);
  }

  /* =============================================
    Pill
  ============================================= */
  .Badge:where([data-pill]) {
    --badge-radius: var(--radius-full);

    padding: 0 calc(var(--badge-gutter) * var(--control-gutter-pill-scaling));
  }
}

@layer components {.Button {
  position: relative;
  display: inline-block;
  gap: var(--button-gap); /* Propagates down to .ButtonInner */
  flex-shrink: 0;
  height: var(--button-size);
  padding: 0 var(--button-gutter);
  border-radius: var(--button-radius);
  cursor: pointer;
  font-size: var(--button-font-size);
  font-weight: var(--button-font-weight);
  line-height: 1;
  transition-duration: var(--transition-duration-basic);
  transition-property: opacity, color;
  transition-timing-function: var(--transition-ease-basic);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  white-space: nowrap;

  /* =============================================
    Disabled
  ============================================= */
}

  /* Background / shape of the button */
  .Button::before {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: inherit;
    content: "";
    transition-duration: var(--transition-duration-basic);
    transition-property: opacity, background-color, transform, box-shadow, border-color;
    transition-timing-function: var(--transition-ease-basic);
    /* Composite layer seems required in some cases to avoid visual artifacts. */
    will-change: transform;
  }

  /* Focus ring */
  .Button::after {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: inherit;
    content: "";
    pointer-events: none;
    transition-duration: var(--transition-duration-basic);
    transition-property: transform;
    transition-timing-function: var(--transition-ease-basic);
    /* Composite layer seems required in some cases to avoid visual artifacts. */
    will-change: transform;
  }

  .Button:focus {
    outline: none;
  }
    .Button:focus-visible::after {
      outline: 2px solid var(--button-ring-color, var(--color-ring));
      outline-offset: var(--button-ring-offset, 2px);
    }

  .Button svg:where(:not([data-no-autosize])) {
    width: var(--button-icon-size);
    height: var(--button-icon-size);
  }

    :where(.Button svg:where(:not([data-no-autosize])):first-child:not(:only-child)) {
      margin-left: var(--button-icon-offset, -1px);
    }

    :where(.Button svg:where(:not([data-no-autosize])):last-child:not(:only-child)) {
      margin-right: var(--button-icon-offset, -1px);
    }

  /* =============================================
    Optical alignment
  ============================================= */
  .Button:where([data-optically-align="start"]) {
    margin-inline-start: calc(var(--button-gutter) * -1);
  }

  .Button:where([data-optically-align="end"]) {
    margin-inline-end: calc(var(--button-gutter) * -1);
  }

  /* Uniform buttons zero-out button-gutter, requiring custom calcs */
  .Button:where([data-optically-align="start"][data-uniform]) {
    margin-inline-start: calc(((var(--button-size) - var(--button-icon-size)) / 2) * -1);
  }

  .Button:where([data-optically-align="end"][data-uniform]) {
    margin-inline-end: calc(((var(--button-size) - var(--button-icon-size)) / 2) * -1);
  }

  /* =============================================
    Sizes
  ============================================= */
  .Button:where([data-size="3xs"]) {
    --button-size: var(--control-size-3xs);
    --button-gutter: var(--control-gutter-2xs);
    --button-font-size: var(--control-font-size-sm);
    --button-icon-size: var(--control-icon-size-xs);
    --button-gap: var(--button-gap-sm);
    --button-radius: var(--control-radius-sm);
    --button-icon-offset: -1px;
    --indicator-size: 11px;
    --circular-progress-size: 11px;
  }

  .Button:where([data-size="2xs"]) {
    --button-size: var(--control-size-2xs);
    --button-gutter: var(--control-gutter-xs);
    --button-font-size: var(--control-font-size-sm);
    --button-icon-size: var(--control-icon-size-sm);
    --button-gap: var(--button-gap-md);
    --button-radius: var(--control-radius-sm);
    --button-icon-offset: -1px;
    --indicator-size: 12px;
    --circular-progress-size: 12px;
  }

  .Button:where([data-size="xs"]) {
    --button-size: var(--control-size-xs);
    --button-gutter: var(--control-gutter-xs);
    --button-font-size: var(--control-font-size-md);
    --button-icon-size: var(--control-icon-size-sm);
    --button-gap: var(--button-gap-md);
    --button-radius: var(--control-radius-sm);
    --button-icon-offset: -1px;
    --indicator-size: 13px;
    --circular-progress-size: 14px;
  }

  .Button:where([data-size="sm"]) {
    --button-size: var(--control-size-sm);
    --button-gutter: var(--control-gutter-sm);
    --button-font-size: var(--control-font-size-md);
    --button-icon-size: var(--control-icon-size-md);
    --button-gap: var(--button-gap-md);
    --button-radius: var(--control-radius-sm);
    --button-icon-offset: -1px;
    --indicator-size: 15px;
    --circular-progress-size: 15px;
  }

  .Button:where([data-size="md"]) {
    --button-size: var(--control-size-md);
    --button-gutter: var(--control-gutter-md);
    --button-font-size: var(--control-font-size-md);
    --button-icon-size: var(--control-icon-size-md);
    --button-gap: var(--button-gap-lg);
    --button-radius: var(--control-radius-md);
    --button-icon-offset: -1px;
    --indicator-size: 16px;
    --circular-progress-size: 16px;
  }

  .Button:where([data-size="lg"]) {
    --button-size: var(--control-size-lg);
    --button-gutter: var(--control-gutter-md);
    --button-font-size: var(--control-font-size-md);
    --button-icon-size: var(--control-icon-size-md);
    --button-gap: var(--button-gap-lg);
    --button-radius: var(--control-radius-md);
    --button-icon-offset: -1px;
    --indicator-size: 16px;
    --circular-progress-size: 16px;
  }

  .Button:where([data-size="xl"]) {
    --button-size: var(--control-size-xl);
    --button-gutter: var(--control-gutter-lg);
    --button-font-size: var(--control-font-size-md);
    --button-icon-size: var(--control-icon-size-md);
    --button-gap: var(--button-gap-lg);
    --button-radius: var(--control-radius-lg);
    --button-icon-offset: -1px;
    --indicator-size: 18px;
    --circular-progress-size: 18px;
  }

  .Button:where([data-size="2xl"]) {
    --button-size: var(--control-size-2xl);
    --button-gutter: var(--control-gutter-lg);
    --button-font-size: var(--control-font-size-lg);
    --button-icon-size: var(--control-icon-size-lg);
    --button-gap: var(--button-gap-lg);
    --button-radius: var(--control-radius-xl);
    --button-icon-offset: -2px;
    --indicator-size: 18px;
    --circular-progress-size: 18px;
  }

  .Button:where([data-size="3xl"]) {
    --button-size: var(--control-size-3xl);
    --button-gutter: var(--control-gutter-xl);
    --button-font-size: var(--control-font-size-lg);
    --button-icon-size: var(--control-icon-size-lg);
    --button-gap: var(--button-gap-lg);
    --button-radius: var(--control-radius-xl);
    --button-icon-offset: -2px;
    --indicator-size: 20px;
    --circular-progress-size: 20px;
  }

  /* =============================================
    Gutter sizes
  ============================================= */
  .Button:where([data-gutter-size="2xs"]) {
    --button-gutter: var(--control-gutter-2xs);
  }

  .Button:where([data-gutter-size="xs"]) {
    --button-gutter: var(--control-gutter-xs);
  }

  .Button:where([data-gutter-size="sm"]) {
    --button-gutter: var(--control-gutter-sm);
  }

  .Button:where([data-gutter-size="md"]) {
    --button-gutter: var(--control-gutter-md);
  }

  .Button:where([data-gutter-size="lg"]) {
    --button-gutter: var(--control-gutter-lg);
  }

  .Button:where([data-gutter-size="xl"]) {
    --button-gutter: var(--control-gutter-xl);
  }

  /* =============================================
    Icon sizes
  ============================================= */
  .Button:where([data-icon-size="sm"]) {
    --button-icon-size: var(--control-icon-size-sm);
  }

  .Button:where([data-icon-size="md"]) {
    --button-icon-size: var(--control-icon-size-md);
  }

  .Button:where([data-icon-size="lg"]) {
    --button-icon-size: var(--control-icon-size-lg);
  }

  .Button:where([data-icon-size="xl"]) {
    --button-icon-size: var(--control-icon-size-xl);
  }

  .Button:where([data-icon-size="2xl"]) {
    --button-icon-size: var(--control-icon-size-2xl);
  }

  /* =============================================
    Pill
  ============================================= */
  .Button:where([data-pill]) {
    --button-radius: var(--radius-full);

    padding: 0 calc(var(--button-gutter) * var(--control-gutter-pill-scaling));
  }

  /* =============================================
    Block
  ============================================= */
  .Button:where([data-block]) {
    width: 100%;
  }

  /* =============================================
    Uniform
  ============================================= */
  .Button[data-uniform] {
    --button-gutter: 0;

    width: var(--button-size);
  }

  /* =============================================
    Ghost variant
  ============================================= */
  .Button[data-variant="ghost"] {
    --button-ring-offset: -1px;

    color: var(--button-text-color);
  }

    .Button[data-variant="ghost"]::before {
      background-color: var(--button-background-color);
      opacity: 0;
      transform: scale(var(--scale));
    }

    .Button[data-variant="ghost"][aria-expanded="true"],
    .Button[data-variant="ghost"][data-state="open"] {
      color: var(--button-text-color-hover);
    }

      .Button[data-variant="ghost"][aria-expanded="true"]::before, .Button[data-variant="ghost"][data-state="open"]::before {
        /* Slightly deemphasize */
        opacity: 0.6;
        transform: scale(1);
      }

    .Button[data-variant="ghost"][data-selected] {
      color: var(--button-text-color-hover);
    }

      .Button[data-variant="ghost"][data-selected]::before {
        opacity: 1;
        transform: scale(1);
      }
      @media (hover: hover) and (pointer: fine) {.Button[data-variant="ghost"]:where(:not([data-disabled])):hover {
        color: var(--button-text-color-hover);
}

        .Button[data-variant="ghost"]:where(:not([data-disabled])):hover::before {
          opacity: 1;
          transform: scale(1);
        }
}
        .Button[data-variant="ghost"]:where(:not([data-disabled])):active::before {
          background-color: var(--button-background-color-active);
          opacity: 1;
          transform: scale(var(--scale));
        }

        .Button[data-variant="ghost"]:where(:not([data-disabled])):active::after {
          transform: scale(var(--scale));
        }

    .Button[data-variant="ghost"]:where([data-color="primary"]) {
      --button-background-color: var(--color-background-primary-ghost-hover);
      --button-background-color-active: var(--color-background-primary-ghost-active);
      --button-text-color: var(--color-text-primary-ghost);
      --button-text-color-hover: var(--color-text-primary-ghost-hover);
      --button-ring-color: var(--color-ring-primary-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="secondary"]) {
      --button-background-color: var(--color-background-secondary-ghost-hover);
      --button-background-color-active: var(--color-background-secondary-ghost-active);
      --button-text-color: var(--color-text-secondary-ghost);
      --button-text-color-hover: var(--color-text-secondary-ghost-hover);
      --button-ring-color: var(--color-ring-secondary-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="danger"]) {
      --button-background-color: var(--color-background-danger-ghost-hover);
      --button-background-color-active: var(--color-background-danger-ghost-active);
      --button-text-color: var(--color-text-danger-ghost);
      --button-text-color-hover: var(--color-text-danger-ghost-hover);
      --button-ring-color: var(--color-ring-danger-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="success"]) {
      --button-background-color: var(--color-background-success-ghost-hover);
      --button-background-color-active: var(--color-background-success-ghost-active);
      --button-text-color: var(--color-text-success-ghost);
      --button-text-color-hover: var(--color-text-success-ghost-hover);
      --button-ring-color: var(--color-ring-success-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="warning"]) {
      --button-background-color: var(--color-background-warning-ghost-hover);
      --button-background-color-active: var(--color-background-warning-ghost-active);
      --button-text-color: var(--color-text-warning-ghost);
      --button-text-color-hover: var(--color-text-warning-ghost-hover);
      --button-ring-color: var(--color-ring-warning-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="caution"]) {
      --button-background-color: var(--color-background-caution-ghost-hover);
      --button-background-color-active: var(--color-background-caution-ghost-active);
      --button-text-color: var(--color-text-caution-ghost);
      --button-text-color-hover: var(--color-text-caution-ghost-hover);
      --button-ring-color: var(--color-ring-caution-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="info"]) {
      --button-background-color: var(--color-background-info-ghost-hover);
      --button-background-color-active: var(--color-background-info-ghost-active);
      --button-text-color: var(--color-text-info-ghost);
      --button-text-color-hover: var(--color-text-info-ghost-hover);
      --button-ring-color: var(--color-ring-info-ghost);
    }

    .Button[data-variant="ghost"]:where([data-color="discovery"]) {
      --button-background-color: var(--color-background-discovery-ghost-hover);
      --button-background-color-active: var(--color-background-discovery-ghost-active);
      --button-text-color: var(--color-text-discovery-ghost);
      --button-text-color-hover: var(--color-text-discovery-ghost-hover);
      --button-ring-color: var(--color-ring-discovery-ghost);
    }

  /* =============================================
    Solid variant
  ============================================= */
  .Button[data-variant="solid"] {
    color: var(--button-text-color);
  }

    .Button[data-variant="solid"]::before {
      background-color: var(--button-background-color);
    }
      .Button[data-variant="solid"][aria-expanded="true"]::before, .Button[data-variant="solid"][data-state="open"]::before, .Button[data-variant="solid"][data-selected]::before {
        background-color: var(--button-background-color-hover);
      }
      @media (hover: hover) and (pointer: fine) {
        .Button[data-variant="solid"]:where(:not([data-disabled])):hover::before {
          background-color: var(--button-background-color-hover);
        }
}
        .Button[data-variant="solid"]:where(:not([data-disabled])):active::before {
          background-color: var(--button-background-color-active);
        }

        .Button[data-variant="solid"]:where(:not([data-disabled])):active::before,
        .Button[data-variant="solid"]:where(:not([data-disabled])):active::after {
          transform: scale(var(--scale));
        }

    .Button[data-variant="solid"]:where([data-color="primary"]) {
      --button-background-color: var(--color-background-primary-solid);
      --button-background-color-hover: var(--color-background-primary-solid-hover);
      --button-background-color-active: var(--color-background-primary-solid-active);
      --button-text-color: var(--color-text-primary-solid);
      --button-ring-color: var(--color-ring-primary-solid);
    }

    .Button[data-variant="solid"]:where([data-color="secondary"]) {
      --button-background-color: var(--color-background-secondary-solid);
      --button-background-color-hover: var(--color-background-secondary-solid-hover);
      --button-background-color-active: var(--color-background-secondary-solid-active);
      --button-text-color: var(--color-text-secondary-solid);
      --button-ring-color: var(--color-ring-secondary-solid);
    }

    .Button[data-variant="solid"]:where([data-color="success"]) {
      --button-background-color: var(--color-background-success-solid);
      --button-background-color-hover: var(--color-background-success-solid-hover);
      --button-background-color-active: var(--color-background-success-solid-active);
      --button-text-color: var(--color-text-success-solid);
      --button-ring-color: var(--color-ring-success-solid);
    }

    .Button[data-variant="solid"]:where([data-color="danger"]) {
      --button-background-color: var(--color-background-danger-solid);
      --button-background-color-hover: var(--color-background-danger-solid-hover);
      --button-background-color-active: var(--color-background-danger-solid-active);
      --button-text-color: var(--color-text-danger-solid);
      --button-ring-color: var(--color-ring-danger-solid);
    }

    .Button[data-variant="solid"]:where([data-color="warning"]) {
      --button-background-color: var(--color-background-warning-solid);
      --button-background-color-hover: var(--color-background-warning-solid-hover);
      --button-background-color-active: var(--color-background-warning-solid-active);
      --button-text-color: var(--color-text-warning-solid);
      --button-ring-color: var(--color-ring-warning-solid);
    }

    .Button[data-variant="solid"]:where([data-color="caution"]) {
      --button-background-color: var(--color-background-caution-solid);
      --button-background-color-hover: var(--color-background-caution-solid-hover);
      --button-background-color-active: var(--color-background-caution-solid-active);
      --button-text-color: var(--color-text-caution-solid);
      --button-ring-color: var(--color-ring-caution-solid);
    }

    .Button[data-variant="solid"]:where([data-color="info"]) {
      --button-background-color: var(--color-background-info-solid);
      --button-background-color-hover: var(--color-background-info-solid-hover);
      --button-background-color-active: var(--color-background-info-solid-active);
      --button-text-color: var(--color-text-info-solid);
      --button-ring-color: var(--color-ring-info-solid);
    }

    .Button[data-variant="solid"]:where([data-color="discovery"]) {
      --button-background-color: var(--color-background-discovery-solid);
      --button-background-color-hover: var(--color-background-discovery-solid-hover);
      --button-background-color-active: var(--color-background-discovery-solid-active);
      --button-text-color: var(--color-text-discovery-solid);
      --button-ring-color: var(--color-ring-discovery-solid);
    }

  /* =============================================
    Soft variant
  ============================================= */
  .Button[data-variant="soft"] {
    color: var(--button-text-color);
  }

    .Button[data-variant="soft"]::before {
      background-color: var(--button-background-color);
    }
      .Button[data-variant="soft"][aria-expanded="true"]::before, .Button[data-variant="soft"][data-state="open"]::before, .Button[data-variant="soft"][data-selected]::before {
        background-color: var(--button-background-color-hover);
      }
      @media (hover: hover) and (pointer: fine) {
        .Button[data-variant="soft"]:where(:not([data-disabled])):hover::before {
          background-color: var(--button-background-color-hover);
        }
}
        .Button[data-variant="soft"]:where(:not([data-disabled])):active::before {
          background-color: var(--button-background-color-active);
        }

        .Button[data-variant="soft"]:where(:not([data-disabled])):active::before,
        .Button[data-variant="soft"]:where(:not([data-disabled])):active::after {
          transform: scale(var(--scale));
        }

    .Button[data-variant="soft"]:where([data-color="primary"]) {
      --button-background-color: var(--color-background-primary-soft-alpha);
      --button-background-color-hover: var(--color-background-primary-soft-alpha-hover);
      --button-background-color-active: var(--color-background-primary-soft-alpha-active);
      --button-text-color: var(--color-text-primary-soft);
      --button-ring-color: var(--color-ring-primary-soft);
    }

    .Button[data-variant="soft"]:where([data-color="secondary"]) {
      --button-background-color: var(--color-background-secondary-soft-alpha);
      --button-background-color-hover: var(--color-background-secondary-soft-alpha-hover);
      --button-background-color-active: var(--color-background-secondary-soft-alpha-active);
      --button-text-color: var(--color-text-secondary-soft);
      --button-ring-color: var(--color-ring-secondary-soft);
    }

    .Button[data-variant="soft"]:where([data-color="success"]) {
      --button-background-color: var(--color-background-success-soft-alpha);
      --button-background-color-hover: var(--color-background-success-soft-alpha-hover);
      --button-background-color-active: var(--color-background-success-soft-alpha-active);
      --button-text-color: var(--color-text-success-soft);
      --button-ring-color: var(--color-ring-success-soft);
    }

    .Button[data-variant="soft"]:where([data-color="danger"]) {
      --button-background-color: var(--color-background-danger-soft-alpha);
      --button-background-color-hover: var(--color-background-danger-soft-alpha-hover);
      --button-background-color-active: var(--color-background-danger-soft-alpha-active);
      --button-text-color: var(--color-text-danger-soft);
      --button-ring-color: var(--color-ring-danger-soft);
    }

    .Button[data-variant="soft"]:where([data-color="warning"]) {
      --button-background-color: var(--color-background-warning-soft-alpha);
      --button-background-color-hover: var(--color-background-warning-soft-alpha-hover);
      --button-background-color-active: var(--color-background-warning-soft-alpha-active);
      --button-text-color: var(--color-text-warning-soft);
      --button-ring-color: var(--color-ring-warning-soft);
    }

    .Button[data-variant="soft"]:where([data-color="caution"]) {
      --button-background-color: var(--color-background-caution-soft-alpha);
      --button-background-color-hover: var(--color-background-caution-soft-alpha-hover);
      --button-background-color-active: var(--color-background-caution-soft-alpha-active);
      --button-text-color: var(--color-text-caution-soft);
      --button-ring-color: var(--color-ring-caution-soft);
    }

    .Button[data-variant="soft"]:where([data-color="info"]) {
      --button-background-color: var(--color-background-info-soft-alpha);
      --button-background-color-hover: var(--color-background-info-soft-alpha-hover);
      --button-background-color-active: var(--color-background-info-soft-alpha-active);
      --button-text-color: var(--color-text-info-soft);
      --button-ring-color: var(--color-ring-info-soft);
    }

    .Button[data-variant="soft"]:where([data-color="discovery"]) {
      --button-background-color: var(--color-background-discovery-soft-alpha);
      --button-background-color-hover: var(--color-background-discovery-soft-alpha-hover);
      --button-background-color-active: var(--color-background-discovery-soft-alpha-active);
      --button-text-color: var(--color-text-discovery-soft);
      --button-ring-color: var(--color-ring-discovery-soft);
    }

  /* =============================================
    Outline variant
  ============================================= */
  .Button[data-variant="outline"] {
    --button-ring-offset: -1px;

    color: var(--button-text-color);
  }

    .Button[data-variant="outline"]::before {
      background-color: transparent;
      box-shadow:
        0 0 0 1px var(--button-border-color) inset,
        var(--button-shadow-custom, 0 0 #00000000);
    }

    .Button[data-variant="outline"][aria-expanded="true"],
    .Button[data-variant="outline"][data-state="open"],
    .Button[data-variant="outline"][data-selected] {
      color: var(--button-text-color-hover);
    }

      .Button[data-variant="outline"][aria-expanded="true"]::before, .Button[data-variant="outline"][data-state="open"]::before, .Button[data-variant="outline"][data-selected]::before {
        background-color: var(--button-background-color-hover);
        box-shadow:
          0 0 0 1px var(--button-border-color-hover) inset,
          var(--button-shadow-custom, 0 0 #00000000);
      }
      @media (hover: hover) and (pointer: fine) {.Button[data-variant="outline"]:where(:not([data-disabled])):hover {
        color: var(--button-text-color-hover);
}

        .Button[data-variant="outline"]:where(:not([data-disabled])):hover::before {
          background-color: var(--button-background-color-hover);
          box-shadow:
            0 0 0 1px var(--button-border-color-hover) inset,
            var(--button-shadow-custom, 0 0 #00000000);
        }
}
        .Button[data-variant="outline"]:where(:not([data-disabled])):active::before {
          background-color: var(--button-background-color-active);
          transform: scale(var(--scale));
        }

        .Button[data-variant="outline"]:where(:not([data-disabled])):active::after {
          transform: scale(var(--scale));
        }

    .Button[data-variant="outline"]:where([data-color="primary"]) {
      --button-background-color-hover: var(--color-background-primary-outline-hover);
      --button-background-color-active: var(--color-background-primary-outline-active);
      --button-border-color: var(--color-border-primary-outline);
      --button-border-color-hover: var(--color-border-primary-outline-hover);
      --button-text-color: var(--color-text-primary-outline);
      --button-text-color-hover: var(--color-text-primary-outline-hover);
      --button-ring-color: var(--color-ring-primary-outline);
    }

    .Button[data-variant="outline"]:where([data-color="secondary"]) {
      --button-background-color-hover: var(--color-background-secondary-outline-hover);
      --button-background-color-active: var(--color-background-secondary-outline-active);
      --button-border-color: var(--color-border-secondary-outline);
      --button-border-color-hover: var(--color-border-secondary-outline-hover);
      --button-text-color: var(--color-text-secondary-outline);
      --button-text-color-hover: var(--color-text-secondary-outline-hover);
      --button-ring-color: var(--color-ring-secondary-outline);
    }

    .Button[data-variant="outline"]:where([data-color="danger"]) {
      --button-background-color-hover: var(--color-background-danger-outline-hover);
      --button-background-color-active: var(--color-background-danger-outline-active);
      --button-border-color: var(--color-border-danger-outline);
      --button-border-color-hover: var(--color-border-danger-outline-hover);
      --button-text-color: var(--color-text-danger-outline);
      --button-text-color-hover: var(--color-text-danger-outline-hover);
      --button-ring-color: var(--color-ring-danger-outline);
    }

    .Button[data-variant="outline"]:where([data-color="success"]) {
      --button-background-color-hover: var(--color-background-success-outline-hover);
      --button-background-color-active: var(--color-background-success-outline-active);
      --button-border-color: var(--color-border-success-outline);
      --button-border-color-hover: var(--color-border-success-outline-hover);
      --button-text-color: var(--color-text-success-outline);
      --button-text-color-hover: var(--color-text-success-outline-hover);
      --button-ring-color: var(--color-ring-success-outline);
    }

    .Button[data-variant="outline"]:where([data-color="warning"]) {
      --button-background-color-hover: var(--color-background-warning-outline-hover);
      --button-background-color-active: var(--color-background-warning-outline-active);
      --button-border-color: var(--color-border-warning-outline);
      --button-border-color-hover: var(--color-border-warning-outline-hover);
      --button-text-color: var(--color-text-warning-outline);
      --button-text-color-hover: var(--color-text-warning-outline-hover);
      --button-ring-color: var(--color-ring-warning-outline);
    }

    .Button[data-variant="outline"]:where([data-color="caution"]) {
      --button-background-color-hover: var(--color-background-caution-outline-hover);
      --button-background-color-active: var(--color-background-caution-outline-active);
      --button-border-color: var(--color-border-caution-outline);
      --button-border-color-hover: var(--color-border-caution-outline-hover);
      --button-text-color: var(--color-text-caution-outline);
      --button-text-color-hover: var(--color-text-caution-outline-hover);
      --button-ring-color: var(--color-ring-caution-outline);
    }

    .Button[data-variant="outline"]:where([data-color="info"]) {
      --button-background-color-hover: var(--color-background-info-outline-hover);
      --button-background-color-active: var(--color-background-info-outline-active);
      --button-border-color: var(--color-border-info-outline);
      --button-border-color-hover: var(--color-border-info-outline-hover);
      --button-text-color: var(--color-text-info-outline);
      --button-text-color-hover: var(--color-text-info-outline-hover);
      --button-ring-color: var(--color-ring-info-outline);
    }

    .Button[data-variant="outline"]:where([data-color="discovery"]) {
      --button-background-color-hover: var(--color-background-discovery-outline-hover);
      --button-background-color-active: var(--color-background-discovery-outline-active);
      --button-border-color: var(--color-border-discovery-outline);
      --button-border-color-hover: var(--color-border-discovery-outline-hover);
      --button-text-color: var(--color-text-discovery-outline);
      --button-text-color-hover: var(--color-text-discovery-outline-hover);
      --button-ring-color: var(--color-ring-discovery-outline);
    }
  /* Non-visual disablement, akin to `inert` */
  .Button[disabled] {
    pointer-events: none;
  }

  /* Visual disablement */
  .Button[data-disabled][data-variant] {
    --button-background-color: var(--color-background-disabled);
    --button-border-color: var(--color-border-disabled);
    --button-text-color: var(--color-text-disabled);

    cursor: not-allowed;
    pointer-events: auto;
  }

    /* Don't press while disabled */
    .Button[data-disabled][data-variant]:active::before {
      transform: scale(1);
    }

    /* Relaxed disabled tone: keep disabled visuals, soften cursor */
    .Button[data-disabled][data-variant][data-disabled-tone="relaxed"] {
      cursor: default;
    }.ButtonInner {
  position: relative;
  display: flex;
  /* Allows overrides through className on .Button */
  flex-direction: inherit;
  align-items: center;
  justify-content: center;
  /* Allows overrides through className on .Button */
  gap: inherit;
  width: 100%;
  /* Prevent padding-bottom from creating excess height (flexbox) */
  height: 100%;
  transition: opacity 0.15s ease 0.1s;
}

  [data-loading] .ButtonInner {
    opacity: 0;
    transition: opacity 0.3s ease;
  }.ButtonLoader {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

  .ButtonLoader[data-entering] {
    opacity: 0;
  }

  .ButtonLoader[data-exiting] {
    opacity: 1;
  }

  .ButtonLoader[data-entering-active],
  .ButtonLoader[data-entering][data-interrupted] {
    opacity: 1;
    transition: opacity 0.15s ease 0.1s;
  }

  .ButtonLoader[data-exiting-active],
  .ButtonLoader[data-exiting][data-interrupted] {
    opacity: 0;
    transition: opacity 0.15s ease;
  }/* .Kbd {
  display: none;

  @mixin breakpoint md {
    display: block;
    padding: 1px 3px;
    border: 1px solid var(--kbd-border-color, transparent);
    border-radius: 4px;
    margin: 0 -2px 0 4px;
    background: var(--kbd-bg, var(--alpha-10));
    color: var(--kbd-color, inherit);
    font-family:
      system-ui,
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      Roboto,
      Oxygen,
      Ubuntu,
      Cantarell,
      "Open Sans",
      "Helvetica Neue",
      sans-serif;
    font-size: 13px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: var(--tracking-wide);
    transition:
      border-color 0.15s ease,
      background-color 0.15s ease,
      color 0.15s ease;

    [data-size="2xs"] & {
      margin-right: 0;
      margin-left: 3px;
      font-size: 12px;
    }

    [data-size="xs"] & {
      font-size: 12px;
    }

    [data-size="sm"] & {
      margin-right: -1px;
    }

    [data-size="xl"] & {
      padding: 2px 3px;
      font-size: 14px;
    }

    [data-pill] & {
      border-radius: 8px;
      margin-right: -5px;
    }

    [data-size="2xs"][data-pill] & {
      margin-right: -4px;
    }
  }
} */
}

@layer components {.CodeBlock {
  position: relative;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background-color: var(--codeblock-background-color);
}.CopyButtonContainer {
  position: absolute;
  top: 0;
  right: 0;
  padding: 10px 10px 0 0;
  border-radius: inherit;
  background-color: var(--codeblock-background-color);
}.SyntaxHighlighter {
  --syntax1: var(--codeblock-syntax-1);
  --syntax2: var(--codeblock-syntax-2);
  --syntax3: var(--codeblock-syntax-3);
  --syntax4: var(--codeblock-syntax-4);
  --syntax5: var(--codeblock-syntax-5);

  overflow: auto;
  display: block;
  /* Padding inside the overflow: auto container */
  padding: 14px 40px 14px 16px;
  margin: 0;
  background: transparent;
  color: var(--color-text);
  font-size: 0.875em; /* 14px to a 16px baseline */
  font-weight: var(--font-weight-normal);
  line-height: 1.5em;
}

  /* stylelint-disable selector-class-pattern */
  .SyntaxHighlighter :global {

    /* Order matters here, for nested tokens */
  }
    .SyntaxHighlighter :global .token.property,
    .SyntaxHighlighter :global .token.variable,
    .SyntaxHighlighter :global .token.attr-name,
    .SyntaxHighlighter :global .token.unit,
    .SyntaxHighlighter :global .token.id,
    .SyntaxHighlighter :global .token.selector,
    .SyntaxHighlighter :global .token.entity,
    .SyntaxHighlighter :global .token.tag,
    .SyntaxHighlighter :global .token.type {
      color: var(--syntax4);
    }

    .SyntaxHighlighter :global .token.url,
    .SyntaxHighlighter :global .token.boolean,
    .SyntaxHighlighter :global .token.number,
    .SyntaxHighlighter :global .token.important {
      color: var(--syntax5);
    }

    .SyntaxHighlighter :global .token.builtin,
    .SyntaxHighlighter :global .token.function,
    .SyntaxHighlighter :global .token.class-name {
      color: var(--syntax1);
    }
    .SyntaxHighlighter :global .token.keyword,
    .SyntaxHighlighter :global .token.constant,
    .SyntaxHighlighter :global .token.symbol,
    .SyntaxHighlighter :global .token.deleted {
      color: var(--syntax2);
    }

    .SyntaxHighlighter :global .token.string,
    .SyntaxHighlighter :global .token.char,
    .SyntaxHighlighter :global .token.regex,
    .SyntaxHighlighter :global .token.attr-value,
    .SyntaxHighlighter :global .token.inserted {
      color: var(--syntax3);
    }

    .SyntaxHighlighter :global .token.comment,
    .SyntaxHighlighter :global .token.prolog,
    .SyntaxHighlighter :global .token.doctype,
    .SyntaxHighlighter :global .token.cdata {
      color: color-mix(in oklab, var(--color-text) 50%, transparent);
    }

    .SyntaxHighlighter :global .token.punctuation,
    .SyntaxHighlighter :global .token.operator {
      color: color-mix(in oklab, var(--color-text) 60%, transparent);
    }

    .SyntaxHighlighter :global .token.console {
      color: var(--color-text);
    }
}

@layer components {.EmptyMessage {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

  .EmptyMessage[data-fill="static"] {
    width: 100%;
    height: 100%;
  }

  .EmptyMessage[data-fill="absolute"] {
    position: absolute;
    inset: 0;
  }.IconBadge {
  --badge-size: 40px;
  --icon-size: 24px;

  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--badge-size);
  height: var(--badge-size);
  border-radius: var(--radius-md);
  margin: 0 0 12px;
  background: var(--badge-background-color);
  color: var(--badge-text-color);
}

  .IconBadge svg {
    width: var(--icon-size);
    height: var(--icon-size);
  }

  .IconBadge[data-size="sm"] {
    --badge-size: 32px;
    --icon-size: 20px;
  }

  .IconBadge[data-color="secondary"] {
    --badge-background-color: var(--color-background-secondary-soft);
    --badge-text-color: var(--color-text-secondary-soft);
  }

  .IconBadge[data-color="warning"] {
    --badge-background-color: var(--color-background-warning-soft);
    --badge-text-color: var(--color-text-warning-soft);
  }

  .IconBadge[data-color="danger"] {
    --badge-background-color: var(--color-background-danger-soft);
    --badge-text-color: var(--color-text-danger-soft);
  }.EmptyMessageTitle {
  max-width: 90%;
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--font-weight-semibold);
  text-align: center;
  text-wrap: balance;
}

  .EmptyMessageTitle:where([data-color="danger"]) {
    color: var(--color-text-danger);
  }

  .EmptyMessageTitle:where([data-color="warning"]) {
    color: var(--color-text-warning);
  }.EmptyMessageDescription {
  max-width: 90%;
  margin: 6px 0 0;
  color: var(--color-text-secondary);
  font-size: 14px;
  line-height: 1.45;
  text-align: center;
  text-wrap: balance;
}.ActionRow {
  margin-top: calc(var(--spacing) * 4);
}
}

@layer components {.LoadingIndicator {
  position: relative;
  width: var(--indicator-size, 1em);
  height: var(--indicator-size, 1em);
  animation: rotate var(--indicator-rotate-duration, 0.8s) linear infinite;
  transition: opacity 0.15s ease;
}

  .LoadingIndicator::before {
    position: absolute;
    inset: 0;
    display: block;
    border: var(--indicator-stroke, 2px) solid var(--indicator-color, currentcolor);
    border-radius: 50%;
    content: "";
    -webkit-mask-image: conic-gradient(rgb(0 0 0 / 0%), rgb(0 0 0));
            mask-image: conic-gradient(rgb(0 0 0 / 0%), rgb(0 0 0));
  }

  .LoadingIndicator::after {
    position: absolute;
    top: 0;
    left: 50%;
    display: block;
    width: var(--indicator-stroke, 2px);
    height: var(--indicator-stroke, 2px);
    border-radius: 100%;
    margin-left: calc(var(--indicator-stroke, 2px) * -1 / 2);
    background-color: var(--indicator-color, currentcolor);
    content: "";
  }@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(1turn);
  }
}
}

@layer components {.InputContainer {
  display: flex;
  align-items: center;
  gap: var(--input-gap);
  width: 100%;
  border-radius: var(--input-radius);
  color: var(--input-text-color);
  cursor: text;
  /* NOTE: Whenever this is not 16px on mobile, zooming occurs. */
  font-size: var(--input-font-size);
  font-weight: var(--font-weight-normal);
  transition-duration: var(--transition-duration-basic);
  transition-property: color, box-shadow, background-color;
  transition-timing-function: var(--transition-ease-basic);
}

  .InputContainer:where([data-optically-align="start"]) {
    margin-inline-start: calc(var(--input-gutter) * -1);
  }

  .InputContainer:where([data-optically-align="end"]) {
    margin-inline-end: calc(var(--input-gutter) * -1);
  }

  /* =============================================
    Outline variant
  ============================================= */
  .InputContainer:where([data-variant="outline"]) {
    /* NOTE: Don't add box-model size here, as the <input> defines all height sizing */
    box-shadow: 0 0 0 1px var(--input-outline-border-color) inset;
  }
      @media (hover: hover) and (pointer: fine) {.InputContainer:where([data-variant="outline"]):not([data-disabled]):hover {
        box-shadow: 0 0 0 1px var(--input-outline-border-color-hover) inset;
}
}

      .InputContainer:where([data-variant="outline"]):not([data-disabled])[data-focused="true"] {
        box-shadow: 0 0 0 1px var(--input-outline-border-color-focus) inset;
      }

      .InputContainer:where([data-variant="outline"]):not([data-disabled])[data-invalid] {
        box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
      }

  /* =============================================
    Soft variant
  ============================================= */
  .InputContainer:where([data-variant="soft"]) {
    background-color: var(--input-soft-background-color);
  }
      .InputContainer:where([data-variant="soft"]):not([data-disabled])[data-focused="true"] {
        box-shadow: 0 0 0 1px var(--input-soft-border-color-focus) inset;
      }

      .InputContainer:where([data-variant="soft"]):not([data-disabled])[data-invalid] {
        box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
      }

  /* =============================================
    Invalid
  ============================================= */
    .InputContainer[data-invalid] ::-moz-selection {
      background-color: var(--red-a50);
    }
    .InputContainer[data-invalid] ::selection {
      background-color: var(--red-a50);
    }

  /* =============================================
    Sizes
  ============================================= */
  .InputContainer:where([data-size="3xs"]) {
    --input-size: var(--control-size-3xs);
    --input-font-size: var(--control-font-size-sm);
    --input-radius: var(--control-radius-sm);
    --input-gutter: var(--control-gutter-xs);
    --input-gap: var(--input-gap-xs);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-size="2xs"]) {
    --input-size: var(--control-size-2xs);
    --input-font-size: var(--control-font-size-sm);
    --input-radius: var(--control-radius-sm);
    --input-gutter: var(--control-gutter-xs);
    --input-gap: var(--input-gap-xs);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-size="xs"]) {
    --input-size: var(--control-size-xs);
    --input-font-size: var(--control-font-size-md);
    --input-radius: var(--control-radius-sm);
    --input-gutter: var(--control-gutter-xs);
    --input-gap: var(--input-gap-sm);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-size="sm"]) {
    --input-size: var(--control-size-sm);
    --input-font-size: var(--control-font-size-md);
    --input-radius: var(--control-radius-md);
    --input-gutter: var(--control-gutter-sm);
    --input-gap: var(--input-gap-md);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-size="md"]) {
    --input-size: var(--control-size-md);
    --input-font-size: var(--control-font-size-md);
    --input-radius: var(--control-radius-md);
    --input-gutter: var(--control-gutter-md);
    --input-gap: var(--input-gap-md);
  }

  .InputContainer:where([data-size="lg"]) {
    --input-size: var(--control-size-lg);
    --input-font-size: var(--control-font-size-md);
    --input-radius: var(--control-radius-md);
    --input-gutter: var(--control-gutter-md);
    --input-gap: var(--input-gap-md);
  }

  .InputContainer:where([data-size="xl"]) {
    --input-size: var(--control-size-xl);
    --input-font-size: var(--control-font-size-lg);
    --input-radius: var(--control-radius-lg);
    --input-gutter: var(--control-gutter-lg);
    --input-gap: var(--input-gap-lg);
  }

  .InputContainer:where([data-size="2xl"]) {
    --input-size: var(--control-size-2xl);
    --input-font-size: var(--control-font-size-lg);
    --input-radius: var(--control-radius-xl);
    --input-gutter: var(--control-gutter-xl);
    --input-gap: var(--input-gap-lg);
    --input-adornment-offset: -4px;
  }

  .InputContainer:where([data-size="3xl"]) {
    --input-size: var(--control-size-3xl);
    --input-font-size: var(--control-font-size-lg);
    --input-radius: var(--control-radius-xl);
    --input-gutter: var(--control-gutter-xl);
    --input-gap: var(--input-gap-lg);
    --input-adornment-offset: -4px;
  }

  /* =============================================
    Gutter sizes
  ============================================= */
  .InputContainer:where([data-gutter-size="2xs"]) {
    --input-gutter: var(--control-gutter-2xs);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-gutter-size="xs"]) {
    --input-gutter: var(--control-gutter-xs);
    --input-adornment-offset: -1px;
  }

  .InputContainer:where([data-gutter-size="sm"]) {
    --input-gutter: var(--control-gutter-sm);
    --input-adornment-offset: -2px;
  }

  .InputContainer:where([data-gutter-size="md"]) {
    --input-gutter: var(--control-gutter-md);
    --input-adornment-offset: -2px;
  }

  .InputContainer:where([data-gutter-size="lg"]) {
    --input-gutter: var(--control-gutter-lg);
    --input-adornment-offset: -2px;
  }

  .InputContainer:where([data-gutter-size="xl"]) {
    --input-gutter: var(--control-gutter-xl);
    --input-adornment-offset: -4px;
  }

  /* =============================================
    Pill
  ============================================= */
  .InputContainer:where([data-pill]) {
    --input-radius: var(--radius-full);
  }

  /* =============================================
    Disabled
  ============================================= */
  .InputContainer[data-disabled] {
    cursor: not-allowed;
    opacity: 0.5;
  }
  /*
   * When adornments are present, gutter is applied to the container instead of the input.
   */
  .InputContainer:where([data-has-start-adornment]) {
    padding-left: var(--input-gutter);
  }

  /* =============================================
    Gutter
  ============================================= */

  .InputContainer:where([data-has-start-adornment][data-pill]) {
    padding-left: calc(var(--input-gutter) * var(--control-gutter-pill-scaling));
  }

  .InputContainer:where([data-has-end-adornment]) {
    padding-right: var(--input-gutter);
  }

  .InputContainer:where([data-has-end-adornment][data-pill]) {
    padding-right: calc(var(--input-gutter) * var(--control-gutter-pill-scaling));
  }

  /* =============================================
    Adornments
  ============================================= */
  .InputContainer > :first-child:not(input) {
    margin-left: var(--input-adornment-offset, -2px);
  }

  .InputContainer > :last-child:not(input) {
    margin-right: var(--input-adornment-offset, -2px);
  }.Input {
  display: block;
  width: 100%;
  height: var(--input-size);
  /* `padding` is intrinsic to `.Input` when no adornments are present, for a few reasons. Autofill extensions are one such reason. */
  padding: 0 var(--input-gutter);
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

  .Input:focus {
    outline: 0;
  }

  .Input:disabled {
    cursor: not-allowed;
  }

  .Input::-moz-placeholder {
    color: var(--input-placeholder-text-color);
  }

  .Input::placeholder {
    color: var(--input-placeholder-text-color);
  }

  /* Applying an animation on autofill allows us to listen for the event in JS */
  .Input:-webkit-autofill {
    animation: native-autofill-in 1ms;
  }

  .Input:-webkit-autofill, .Input:-webkit-autofill:focus, .Input:-webkit-autofill:hover {
    color: var(--color-text) !important;
    -webkit-text-fill-color: var(--color-text) !important;
    /*
     * Prevent all color changes by delaying their effect for a very long time
     * We cannot beat the specificity of user-agent stylesheet declarations, so we must delay them.
     */
    -webkit-transition:
      background-color 0s 50000s,
      box-shadow 0s 50000s,
      filter 0s 50000s !important;
    transition:
      background-color 0s 50000s,
      box-shadow 0s 50000s,
      filter 0s 50000s !important;
}

  .Input:-webkit-autofill-and-obscured, .Input:-webkit-autofill-strong-password, .Input:-webkit-autofill-strong-password-viewable {
    color: var(--color-text) !important;
    -webkit-text-fill-color: var(--color-text) !important;
    /*
     * Prevent all color changes by delaying their effect for a very long time
     * We cannot beat the specificity of user-agent stylesheet declarations, so we must delay them.
     */
    -webkit-transition:
      background-color 0s 50000s,
      box-shadow 0s 50000s,
      filter 0s 50000s !important;
    transition:
      background-color 0s 50000s,
      box-shadow 0s 50000s,
      filter 0s 50000s !important;
}

  /* Prevent strange autofill size adjustments */
  .Input:-webkit-autofill::first-line {
    font-size: inherit !important;
    -webkit-transition: font-size 0s 50000s !important;
    transition: font-size 0s 50000s !important;
  }

  /* Hide up/down arrows */
  .Input[type="number"] {
    /* Firefox */
    -webkit-appearance: textfield;
       -moz-appearance: textfield;
            appearance: textfield;

    /* Chrome, Safari, Edge, Opera */
  }
    .Input[type="number"]::-webkit-outer-spin-button,
    .Input[type="number"]::-webkit-inner-spin-button {
      margin: 0;
      -webkit-appearance: none;
              appearance: none;
    }

  /* Dynamic pill spacing */
  :where(.InputContainer[data-pill]) .Input {
    padding: 0 calc(var(--input-gutter) * var(--control-gutter-pill-scaling));
  }

  :where(.InputContainer[data-has-start-adornment]) .Input {
    padding-left: 0;
  }

  :where(.InputContainer[data-has-end-adornment]) .Input {
    padding-right: 0;
  }@keyframes native-autofill-in {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 1;
  }
}
}

@layer components {.MarkdownContent {
  overflow-wrap: anywhere;
}
  /* IMPORTANT: These cannot be removed without changing SmoothMarkdown   */
  .MarkdownContent *:first-child {
    margin-top: 0;
  }
  /* ******************************************************************** */

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

  /* Headers */
  .MarkdownContent h1 {
    margin-bottom: 0.5rem;
    font-size: 1.75em;
    font-weight: var(--font-weight-semibold);
    letter-spacing: -0.04rem;
    line-height: 1.222;
  }
  /* ******************************************************************** */

  .MarkdownContent h2 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1.5em;
    font-weight: var(--font-weight-semibold);
    line-height: 1.222;
  }

  /* Avoid margin collapse on all children, for more predictable spacing. */

  .MarkdownContent h3 {
    margin-top: 1.125rem;
    margin-bottom: 0.625rem;
    font-size: 1.25em;
    font-weight: var(--font-weight-semibold);
    line-height: 1.3;
  }

  .MarkdownContent h4 {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    font-size: 1em;
    font-weight: var(--font-weight-semibold);
    line-height: 1.5;
  }

  .MarkdownContent h5 {
    font-size: 1em;
    font-weight: var(--font-weight-semibold);
    line-height: 1.5;
  }

  .MarkdownContent h6 {
    font-size: 1em;
    line-height: 1.5;
  }

  /* Lists */
  .MarkdownContent ul,
  .MarkdownContent ol {
    margin: 0.5em 0 1em;
  }

    .MarkdownContent ul > li > :first-child, .MarkdownContent ol > li > :first-child {
      margin-top: 0;
      margin-bottom: 0;
    }

    .MarkdownContent ul > li ul,
    .MarkdownContent ul > li ol,
    .MarkdownContent ol > li ul,
    .MarkdownContent ol > li ol {
      margin-top: 0.25em !important;
    }

  .MarkdownContent ul {
    padding-left: 1.625em;
    list-style-type: disc;
  }

    .MarkdownContent ul > li {
      padding-left: 0.375em;
      margin: 0.5em 0;
    }

      .MarkdownContent ul > li::marker {
        color: var(--color-text-secondary);
        font-size: 1em;
        font-weight: var(--font-weight-medium);
      }

  .MarkdownContent ol {
    padding-left: 1.625em;
    list-style-type: decimal;
  }

    .MarkdownContent ol > li {
      padding-left: 0.375em;
      margin: 0.5em 0;
    }

      .MarkdownContent ol > li::marker {
        color: var(--color-text-secondary);
        font-size: 1em;
        font-weight: var(--font-weight-medium);
      }

  .MarkdownContent li {
    min-height: 1.5em;
    margin: 0.5em 0;
  }

  /* Text */
  .MarkdownContent p {
    margin: 1em 0;
  }

  /* Emphasis */
  .MarkdownContent strong {
    font-weight: var(--font-weight-semibold);
  }

  .MarkdownContent em {
    font-style: italic;
  }

  /* Quotes */
  .MarkdownContent blockquote {
    position: relative;
    padding-top: 0.25em;
    padding-bottom: 0.25rem;
    padding-left: calc(var(--spacing) * 6);
    color: var(--tw-prose-quotes);
    font-weight: var(--font-weight-normal);
    quotes: "\201C" "\201D" "\2018" "\2019";
  }

    .MarkdownContent blockquote::before {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      display: block;
      width: 0.25rem;
      border-radius: var(--radius-2xs);
      content: "";
    }

    .MarkdownContent blockquote::before, :where([data-theme="light"]) .MarkdownContent blockquote::before {
background: var(--alpha-15);
}

    :where([data-theme="dark"]) .MarkdownContent blockquote::before {
background: var(--alpha-20);
}

    .MarkdownContent blockquote p {
      margin: 0.5em 0 0;
    }

      .MarkdownContent blockquote p:first-child {
        margin-top: 0;
      }

  /* Dividers */
  .MarkdownContent hr {
    border-color: var(--alpha-10);
    border-top-width: 1px;
    margin-top: 2em;
    margin-bottom: 2em;
  }

  /* Tables */
  .MarkdownContent table {
    width: 100%;
    border: 0;
    margin-top: 2em;
    margin-bottom: 2em;
    border-collapse: separate;
    font-size: 0.875em;
    line-height: 1.7142857;
    table-layout: auto;
  }

  .MarkdownContent th {
    border: 0;
    border-bottom: 1px solid var(--color-border-strong);
    line-height: var(--font-text-sm-line-height);
    padding-block: calc(var(--spacing) * 2);
    padding-inline: calc(var(--spacing) * 2);
    text-align: start;
  }

    .MarkdownContent th:first-child {
      padding-inline-start: 0;
    }

    .MarkdownContent th:last-child {
      padding-inline-end: 0;
    }

  .MarkdownContent td {
    border: 0;
    border-bottom: 1px solid var(--color-border);
    padding-block: calc(var(--spacing) * 2.5);
    padding-inline: calc(var(--spacing) * 2);
  }

    .MarkdownContent td:first-child {
      padding-inline-start: 0;
    }

    .MarkdownContent td:last-child {
      padding-inline-end: 0;
    }
    .MarkdownContent tbody tr:last-child td {
      border-bottom: 0;
    }.InlineCode {
  padding: 1px 0.3rem;
  border-radius: 0.25rem;
  box-shadow: inset 0 0 0 1px var(--alpha-08);
  color: inherit;
  font-size: 0.875em;
  font-weight: 500;
}.InlineCode, :where([data-theme="light"]) .InlineCode {
background-color: var(--alpha-04);
}:where([data-theme="dark"]) .InlineCode {
background-color: var(--alpha-10);
}
}

@layer components {.Menu {
  /* Top-level selector needs to exist */
}.MenuList {
  overflow: auto;
  width: var(--menu-width, auto);
  min-width: var(--menu-min-width, 300px);
  max-width: var(--radix-dropdown-menu-content-available-width);
  max-height: min(
    var(--radix-dropdown-menu-content-available-height),
    var(--menu-max-height, 1200px)
  );
  padding: var(--menu-gutter);
  border-radius: var(--menu-radius);
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow), var(--shadow-hairline);
  color: var(--color-text);
  font-size: var(--menu-font-size);
  line-height: var(--menu-line-height);
  -webkit-overflow-scrolling: touch;
  pointer-events: auto;
  /* The transform-origin computed from the content and arrow positions/offsets */
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
  will-change: transform;
}

  /* Animation states applied to a wrapping parent */
  .Menu[data-entering] .MenuList {
    opacity: 0;
    transform: scale(0.95);
  }

  .Menu[data-entering-active] .MenuList,
  .Menu[data-entering][data-interrupted] .MenuList {
    opacity: 1;
    transform: scale(1);
    transition-duration: 0.35s;
    transition-property: opacity, transform;
    transition-timing-function: var(--cubic-enter);
  }

  .Menu[data-exiting] .MenuList {
    opacity: 1;
    transform: scale(1);
  }

  .Menu[data-exiting-active] .MenuList,
  .Menu[data-exiting][data-interrupted] .MenuList {
    opacity: 0;
    transform: scale(0.95);
    transition-duration: 0.2s;
    transition-property: opacity, transform;
    transition-timing-function: var(--cubic-exit);
  }.MenuItemContent {
  padding: var(--menu-item-padding);
}.MenuItem {
  position: relative;
  display: block;
  /* Defaults to inherit from pressable wrapper, this container is not flex */
  align-items: center;
  gap: var(--menu-item-gap);
  padding: var(--menu-item-padding);
  color: var(--color-text);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

  .MenuItem:focus {
    outline: none;
  }

  @media (hover: hover) and (pointer: fine) {.MenuItem:hover {
    /* Prevent links from changing colors */
    color: var(--color-text);
}
}

  .MenuItem::before {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: calc(var(--menu-radius) - var(--menu-gutter));
    background: var(--menu-item-background-color);
    content: "";
    opacity: 0;
    transform: scale(var(--scale, 0.98));
    transition-duration: var(--transition-duration-basic);
    transition-property: opacity, background-color, transform;
    transition-timing-function: var(--cubic-enter);
    will-change: opacity, transform;
  }
    .MenuItem[data-state="open"]::before, .MenuItem[data-highlighted]::before {
      opacity: 1;
      transform: scale(1);
    }

    .MenuItem[data-state="open"]:has(.ItemActions:hover)::before, .MenuItem[data-highlighted]:has(.ItemActions:hover)::before {
      opacity: 0.4;
    }

    .MenuItem[data-state="open"]:not(:has(.ItemActions:hover)):active::before, .MenuItem[data-highlighted]:not(:has(.ItemActions:hover)):active::before {
      transform: scale(var(--scale, 0.98));
    }

    .MenuItem[data-state="open"] .ItemActions, .MenuItem[data-highlighted] .ItemActions {
      opacity: 1;
    }

  .MenuItem[data-disabled] {
    cursor: not-allowed;
    opacity: 0.5;
  }

    .MenuItem[data-disabled]::before {
      display: none;
    }.PressableInner {
  position: relative;
  display: flex;
  /* Allow flex settings to be applied to the container, for className ergonomics */
  align-items: inherit;
  justify-content: inherit;
  gap: inherit;
}.ItemActions {
  /* Prevent adding height to the MenuItem, and horizontally center */
  display: flex;
  align-items: center;
  height: 0;
  /* Magic number that pulls back the icon an equal gutter from the top/bottom */
  margin-right: -5px;
  opacity: 0;
  transition-duration: var(--transition-duration-basic);
  transition-property: opacity;
  transition-timing-function: var(--cubic-enter);
}.Separator {
  height: 1px;
  margin: var(--menu-separator-gutter);
  background: var(--menu-separator-background-color);
}.SubMenuItem {
  justify-content: space-between;
}.SubTriggerIcon {
  /* slight visual offset of svg canvas */
  margin-right: -2px;
  opacity: 0.75;
  transition: opacity var(--transition-duration-basic) var(--transition-ease-basic);
}

  .SubMenuItem[data-state="open"] .SubTriggerIcon,
  .SubMenuItem[data-highlighted] .SubTriggerIcon {
    opacity: 1;
  }.RadioItem {
  gap: calc(var(--spacing) * 2);
}

  :where([data-indicator-position="end"]) .RadioItem {
    justify-content: space-between;
    gap: calc(var(--spacing) * 3);
  }.RadioIndicatorActive {
  position: relative;
  display: inline-grid;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;

  /* Don't play the animation when entering */
}

  .RadioIndicatorActive::before,
  .RadioIndicatorActive::after {
    display: block;
    content: "";
    grid-column-start: 1;
    grid-row-start: 1;
    place-self: center center;
    will-change: transform;
  }

  /* Filled circle */
  .RadioIndicatorActive::before {
    width: var(--menu-radio-indicator-size);
    height: var(--menu-radio-indicator-size);
    border-radius: var(--radius-full);
    animation: fade-in 0.4s var(--cubic-enter);
    background-color: var(--radio-group-indicator-background-color);
  }

  /*  Empty middle circle */
  .RadioIndicatorActive::after {
    width: var(--menu-radio-indicator-hole-size);
    height: var(--menu-radio-indicator-hole-size);
    border-radius: var(--radius-full);
    animation: scale-in 0.4s var(--cubic-enter);
    background-color: var(--radio-group-indicator-hole-background-color);
  }
  [data-entering] .RadioIndicatorActive::before,
  [data-entering] .RadioIndicatorActive::after {
    animation-duration: 0s;
  }.RadioIndicator {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--menu-radio-indicator-size);
  height: var(--menu-radio-indicator-size);
  padding: 0;
  border: none;
  border-radius: var(--radius-full);
  background-color: transparent;
  box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color) inset;
  cursor: pointer;
  transition-duration: var(--transition-duration-basic);
  transition-property: box-shadow;
  transition-timing-function: var(--transition-ease-basic);
}

  [data-indicator-position="end"] .RadioIndicator {
    order: 1;
  }

  [data-highlighted] .RadioIndicator {
    box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color-hover) inset;
  }

  [data-disabled] .RadioIndicator {
    cursor: not-allowed;
  }

  /* Can't be focused here anyway */
  .RadioIndicator:focus {
    outline: none;
  }@keyframes scale-in {
  0% {
    transform: scale(0);
  }

  100% {
    transform: scale(1);
  }
}@keyframes fade-in {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}.CheckboxItem {
  gap: calc(var(--spacing) * 2);
}

  .CheckboxItem:where([data-indicator-position="end"]) {
    justify-content: space-between;
    gap: calc(var(--spacing) * 3);
  }.CheckboxIndicator {
  flex-shrink: 0;
  width: var(--menu-checkbox-indicator-size);
  height: var(--menu-checkbox-indicator-size);
}

  [data-indicator-position="end"] .CheckboxIndicator {
    order: 1;
  }

  [data-indicator-variant="solid"] .CheckboxIndicator {
    border-radius: var(--radius-full);
    box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color) inset;
  }.CheckboxCircle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--menu-checkbox-indicator-size);
  height: var(--menu-checkbox-indicator-size);
  border-radius: var(--radius-full);
  animation: fade-in 0.5s var(--cubic-enter);
  background-color: var(--radio-group-indicator-background-color);
  color: var(--radio-group-indicator-hole-background-color);

  /* Don't play the animation when entering */
}
  [data-entering] .CheckboxCircle::before,
  [data-entering] .CheckboxCircle::after {
    animation-duration: 0s;
  }
}

@layer components {.Transition {
  /* CSS Modules requires a top-level class to create the string map entry */
}.Popover {
  overflow: auto;
  width: var(--popover-width, auto);
  min-width: var(--popover-min-width, 300px);
  max-width: min(var(--popover-max-width, 700px), var(--radix-popover-content-available-width));
  max-height: var(--radix-popover-content-available-height);
  border-radius: var(--popover-radius);
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow), var(--shadow-hairline);
  -webkit-overflow-scrolling: touch;
  transform-origin: var(--radix-popover-content-transform-origin);
  will-change: transform;
}

  .Popover:focus {
    outline: none;
  }

  .Popover[data-translucent] {
    backdrop-filter: blur(16px);
    background: linear-gradient(360deg, rgb(247 247 248 / 50%) 0%, rgb(247 247 248 / 100%) 100%);
  }

    :where([data-theme="dark"]) .Popover[data-translucent] {
      background: linear-gradient(360deg, rgb(86 88 105 / 25%) 0%, rgb(86 88 105 / 49%) 100%);
}

  /* One-off animations */
  .Popover[data-animate="shake"] {
    animation: shake 0.4s ease;
  }

  /* Visibility transitions */
  .Transition[data-entering] .Popover {
    opacity: 0;
    transform: scale(0.95);
  }

  .Transition[data-entering-active] .Popover,
  .Transition[data-entering][data-interrupted] .Popover {
    opacity: 1;
    transform: scale(1);
    transition-duration: 0.35s;
    transition-property: opacity, transform;
    transition-timing-function: var(--cubic-enter);
  }

  .Transition[data-exiting] .Popover {
    opacity: 1;
    transform: scale(1);
  }

  .Transition[data-exiting-active] .Popover,
  .Transition[data-exiting][data-interrupted] .Popover {
    opacity: 0;
    transform: scale(0.95);
    transition-duration: 0.2s;
    transition-property: opacity, transform;
    transition-timing-function: var(--cubic-exit);
  }@keyframes shake {
  0% {
    transform: translateX(0);
  }

  20%,
  60% {
    transform: translateX(-5px);
  }

  40%,
  80% {
    transform: translateX(5px);
  }

  100% {
    transform: translateX(0);
  }
}
}

@layer components {.SegmentedControl {
  --segmented-control-option-radius: calc(
    var(--segmented-control-radius) - var(--segmented-control-gutter)
  );

  position: relative;
  overflow: auto;
  display: inline-flex;
  flex-wrap: nowrap;
  gap: var(--segmented-control-gap);
  height: var(--segmented-control-size);
  padding: var(--segmented-control-gutter);
  border-radius: var(--segmented-control-radius);
  background: var(--segmented-control-background);
  font-size: var(--segmented-control-font-size);
  font-weight: var(--segmented-control-font-weight);
  -ms-overflow-style: none;
  scrollbar-width: none;
  /* Remove inline-flex baseline gap */
  vertical-align: middle;
  white-space: nowrap;
}

  .SegmentedControl::-webkit-scrollbar {
    width: 0;
    height: 0;
  }

  .SegmentedControl::-webkit-scrollbar-track,
  .SegmentedControl::-webkit-scrollbar-thumb {
    background: transparent;
  }

  .SegmentedControl:where([data-block]) {
    overflow: hidden;
    display: flex;
    width: 100%;
    white-space: wrap;
  }

  /* =============================================
    Sizes
  ============================================= */
  .SegmentedControl:where([data-size="3xs"]) {
    --segmented-control-size: var(--control-size-3xs);
    --segmented-control-font-size: var(--control-font-size-sm);
    --segmented-control-radius: var(--control-radius-sm);
    --segmented-control-option-gutter: var(--control-gutter-xs);
  }

  .SegmentedControl:where([data-size="2xs"]) {
    --segmented-control-size: var(--control-size-2xs);
    --segmented-control-font-size: var(--control-font-size-sm);
    --segmented-control-radius: var(--control-radius-sm);
    --segmented-control-option-gutter: var(--control-gutter-xs);
  }

  .SegmentedControl:where([data-size="xs"]) {
    --segmented-control-size: var(--control-size-xs);
    --segmented-control-font-size: var(--control-font-size-md);
    --segmented-control-radius: var(--control-radius-sm);
    --segmented-control-option-gutter: var(--control-gutter-xs);
  }

  .SegmentedControl:where([data-size="sm"]) {
    --segmented-control-size: var(--control-size-sm);
    --segmented-control-font-size: var(--control-font-size-md);
    --segmented-control-radius: var(--control-radius-md);
    --segmented-control-option-gutter: var(--control-gutter-sm);
  }

  .SegmentedControl:where([data-size="md"]) {
    --segmented-control-size: var(--control-size-md);
    --segmented-control-font-size: var(--control-font-size-md);
    --segmented-control-radius: var(--control-radius-md);
    --segmented-control-option-gutter: var(--control-gutter-md);
  }

  .SegmentedControl:where([data-size="lg"]) {
    --segmented-control-size: var(--control-size-lg);
    --segmented-control-font-size: var(--control-font-size-md);
    --segmented-control-radius: var(--control-radius-md);
    --segmented-control-option-gutter: var(--control-gutter-md);
  }

  .SegmentedControl:where([data-size="xl"]) {
    --segmented-control-size: var(--control-size-xl);
    --segmented-control-font-size: var(--control-font-size-md);
    --segmented-control-radius: var(--control-radius-lg);
    --segmented-control-option-gutter: var(--control-gutter-lg);
  }

  .SegmentedControl:where([data-size="2xl"]) {
    --segmented-control-size: var(--control-size-2xl);
    --segmented-control-font-size: var(--control-font-size-lg);
    --segmented-control-radius: var(--control-radius-xl);
    --segmented-control-option-gutter: var(--control-gutter-xl);
  }

  .SegmentedControl:where([data-size="3xl"]) {
    --segmented-control-size: var(--control-size-3xl);
    --segmented-control-font-size: var(--control-font-size-lg);
    --segmented-control-radius: var(--control-radius-xl);
    --segmented-control-option-gutter: var(--control-gutter-xl);
  }

  /* =============================================
    Gutter sizes
  ============================================= */
  .SegmentedControl:where([data-gutter-size="2xs"]) {
    --segmented-control-option-gutter: var(--control-gutter-2xs);
  }

  .SegmentedControl:where([data-gutter-size="xs"]) {
    --segmented-control-option-gutter: var(--control-gutter-xs);
  }

  .SegmentedControl:where([data-gutter-size="sm"]) {
    --segmented-control-option-gutter: var(--control-gutter-sm);
  }

  .SegmentedControl:where([data-gutter-size="md"]) {
    --segmented-control-option-gutter: var(--control-gutter-md);
  }

  .SegmentedControl:where([data-gutter-size="lg"]) {
    --segmented-control-option-gutter: var(--control-gutter-lg);
  }

  .SegmentedControl:where([data-gutter-size="xl"]) {
    --segmented-control-option-gutter: var(--control-gutter-xl);
  }

  /* =============================================
    Pill
  ============================================= */
  .SegmentedControl:where([data-pill]) {
    --segmented-control-radius: var(--radius-full);
    --segmented-control-option-radius: var(--radius-full);
  }.SegmentedControlOption {
  position: relative;
  padding: 0 var(--segmented-control-option-gutter);
  border-radius: var(--segmented-control-option-radius);
  color: var(--color-text-secondary);
  cursor: pointer;
  line-height: 1;
  transition-duration: var(--transition-duration-basic);
  transition-property: opacity, background-color, color;
  transition-timing-function: var(--transition-ease-basic);
}

  .SegmentedControlOption:focus {
    outline: 0;
  }

  :where(.SegmentedControl[data-block]) .SegmentedControlOption {
    flex: 1;
  }

  :where(.SegmentedControl[data-pill]) .SegmentedControlOption {
    padding: 0 calc(var(--segmented-control-option-gutter) * var(--control-gutter-pill-scaling));
  }

  .SegmentedControlOption[data-state="on"]:focus-visible {
    outline: 2px solid var(--color-ring);
  }

  .SegmentedControlOption::before {
    position: absolute;
    inset: var(--segmented-control-option-highlight-gutter);
    border-radius: var(--segmented-control-option-radius);
    background: var(--segmented-control-option-highlight-background-color);
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: scale(1);
    transition-duration: var(--transition-duration-basic);
    transition-property: opacity, transform;
    transition-timing-function: var(--transition-ease-basic);
    will-change: transform;
  }

  .SegmentedControlOption:active::before {
    transform: scale(var(--scale), 0.97);
  }

  .SegmentedControlOption svg {
    display: block;
  }
    @media (hover: hover) and (pointer: fine) {.SegmentedControlOption[data-state="off"]:where(:not([disabled])):hover {
      color: var(--color-text);
}

      .SegmentedControlOption[data-state="off"]:where(:not([disabled])):hover::before {
        opacity: 0.5;
      }
}

    .SegmentedControlOption[data-state="off"]:where(:not([disabled])):focus-visible {
      color: var(--color-text);
      outline: 2px solid var(--color-ring);
    }

    .SegmentedControlOption[data-state="off"]:where(:not([disabled])):active::before {
      opacity: 0.75;
    }

  .SegmentedControlOption[data-state="on"] {
    color: var(--color-text);
  }

  .SegmentedControlOption[data-disabled] {
    cursor: not-allowed;
    opacity: 0.5;
  }

    .SegmentedControlOption[data-disabled]::before {
      opacity: 0 !important;
    }.SegmentedControlThumb {
  position: absolute;
  top: var(--segmented-control-gutter);
  bottom: var(--segmented-control-gutter);
  left: 0;
  border-radius: var(--segmented-control-option-radius);
  background: var(--segmented-control-thumb-background);
  box-shadow: var(--segmented-control-thumb-shadow);
  pointer-events: none;
  will-change: transform;
}
}

@layer components {.SwitchContainer {
  display: flex;
  font-size: var(--font-text-sm-size);
  line-height: var(--font-text-sm-line-height);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

  .SwitchContainer[data-has-label] {
    align-items: flex-start;
  }

  .SwitchContainer[data-label-position="start"] {
    flex-direction: row-reverse;
  }.Track {
  position: relative;
  flex-shrink: 0;
  width: var(--switch-track-width);
  max-width: var(--switch-track-width);
  height: var(--switch-track-height);
  border: 0;
  border-radius: var(--radius-full);
  background: var(--switch-track-color);
  cursor: pointer;
  transition: background-color 250ms var(--cubic-move);
}
    @media (hover: hover) and (pointer: fine) {.Track:where(:not([data-disabled], [data-state="checked"])):hover {
      background: var(--switch-track-color-hover);
}
}

  [data-has-label] .Track {
    /*
     * Vertical alignment adjusting when necessary. Avoid using align-items: center; for long wrapping labels.
     */
    top: var(--switch-track-top-offset, 1px);
  }

  .Track:focus-visible {
    outline: 2px solid var(--color-ring);
    outline-offset: 2px;
  }

  .Track[data-state="checked"] {
    background: var(--switch-track-color-checked);
  }

  .Track[data-disabled] {
    background: var(--switch-track-color-disabled);
    cursor: not-allowed;
  }

    .Track[data-disabled][data-state="checked"] {
      background: var(--switch-track-color-checked-disabled);
    }.Thumb {
  position: absolute;
  top: var(--switch-thumb-offset);
  left: var(--switch-thumb-offset);
  display: block;
  width: var(--switch-thumb-size);
  height: var(--switch-thumb-size);
  border-radius: var(--radius-full);
  background: var(--switch-thumb-color);
  box-shadow: var(--switch-thumb-shadow);
  transition: transform 250ms var(--cubic-move);
}

  [data-state="checked"] .Thumb {
    transform: translateX(
      calc(var(--switch-track-width) - var(--switch-thumb-size) - var(--switch-thumb-offset) * 2)
    );
  }

  .Thumb[data-disabled] {
    background: var(--switch-thumb-color-disabled);
    box-shadow: none;
  }.Label {
  cursor: pointer;
}

  /* Use padding so that the spacing is intrinsic to the label, remaining clickable. */
  [data-label-position="end"] .Label {
    padding-left: var(--switch-label-gap);
  }

  [data-label-position="start"] .Label {
    padding-right: var(--switch-label-gap);
  }

  [data-disabled] .Label {
    cursor: not-allowed;
  }
}

@layer components {.TextLink {
  display: inline-flex;
  align-items: center;
  gap: var(--link-gap);
  /* Used to round the focus ring */
  border-radius: var(--link-radius);
  color: currentcolor;
  cursor: pointer;
  font-weight: var(--link-font-weight);
  overflow-wrap: anywhere;
  transition-duration: var(--transition-duration-basic);
  transition-property: opacity, color, box-shadow, text-decoration-color;
  transition-timing-function: var(--transition-ease-basic);
}

  @media (hover: hover) and (pointer: fine) {.TextLink:hover {
    color: color-mix(in oklab, currentcolor 80%, transparent);
}

    /* stylelint-disable-next-line */
    :global(.text-secondary) .TextLink:hover {
      color: var(--color-text);
    }

    /* stylelint-disable-next-line */
    :global(.text-tertiary) .TextLink:hover {
      color: var(--color-text-secondary);
    }
}

  .TextLink:focus-visible {
    outline: 2px solid var(--color-ring);
    outline-offset: 1px;
  }

  .TextLink[data-underline] {
    text-decoration: underline;
    text-decoration-color: color-mix(in oklab, currentcolor 70%, transparent);
    text-underline-offset: var(--link-underline-decoration-offset);
  }

  .TextLink[data-primary] {
    color: var(--link-primary-text-color);
  }

    @media (hover: hover) and (pointer: fine) {.TextLink[data-primary]:hover {
      color: var(--link-primary-text-color-hover);
}
}
}

@layer components {.Tooltip {
  max-width: 300px;
  border-radius: var(--radius-md);
  /* animation-duration: 0.3s; */
  /* animation-name: scale-in; */
  /* animation-timing-function: var(--cubic-enter); */
  background: var(--color-surface-elevated);
  box-shadow: var(--shadow), var(--shadow-hairline);
  font-size: 14px;
  line-height: 1.45;
  /* transform-origin: var(--radix-tooltip-content-transform-origin); */
  /* transition: background-color 0.15s ease; */

  /* &[data-state="closed"] {
    animation: scale-out 0.2s var(--cubic-exit);
  } */
}

  /*
   * Default cursor is slightly more pleasing than text cursor,
   * if a tooltip transitions between clickable -> non-clickable (e.g., CopyTooltip)
   */
  .Tooltip[data-clickable="false"] {
    cursor: default;
  }

  .Tooltip[data-clickable="true"] {
    cursor: pointer;
  }
    @media (hover: hover) and (pointer: fine) {.Tooltip[data-compact="true"][data-clickable="true"]:hover {
      background: var(--gray-600);
      color: var(--gray-0);
}
}

  .Tooltip[data-gutter-size="sm"] {
    padding: 8px 12px;
  }

  .Tooltip[data-gutter-size="md"] {
    padding: 12px 16px;
  }

  .Tooltip[data-gutter-size="lg"] {
    padding: 14px 18px;
  }

  .Tooltip[data-compact="true"] {
    padding: 2px 8px;
    background: var(--gray-700);
    color: var(--gray-0);
    font-size: 14px;
  }@keyframes scale-in {
  from {
    opacity: 0;
    transform: scale(0.95);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}@keyframes scale-out {
  from {
    opacity: 1;
    transform: scale(1);
  }

  to {
    opacity: 0;
    transform: scale(0.95);
  }
}.TriggerDecorator {
  display: inline-flex;
  cursor: pointer;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  text-decoration-color: transparent;
  /* transition: text-decoration 0.2s var(--cubic-exit); */
}

  .TriggerDecorator:focus {
    outline: 0;
  }

  .TriggerDecorator[data-state*="open"] {
    text-decoration-color: var(--color-text-tertiary);
    transition-timing-function: var(--cubic-enter);
  }
}

@layer site{
/* Foundation: the page canvas, type defaults and shared primitives.
   Everything here reads Apps SDK UI tokens. No literal colours, sizes or radii. */

:root{
  /* Default typeface: Google Sans (self-hosted, design-system/fonts). The SDK's own system
     stack follows it, so any glyph Google Sans lacks, such as arrows, falls back cleanly. */
  --font-sans:"Google Sans",ui-sans-serif,-apple-system,system-ui,"Segoe UI","Noto Sans",Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",sans-serif;

  /* Spacing steps, derived from the SDK's 4px --spacing unit. */
  --space-1:calc(var(--spacing) * 1);   --space-1-5:calc(var(--spacing) * 1.5); --space-2:calc(var(--spacing) * 2);
  --space-2-5:calc(var(--spacing) * 2.5); --space-0-5:calc(var(--spacing) * 0.5); --space-3:calc(var(--spacing) * 3);   --space-3-5:calc(var(--spacing) * 3.5); --space-4:calc(var(--spacing) * 4);
  --space-5:calc(var(--spacing) * 5);   --space-6:calc(var(--spacing) * 6);   --space-7:calc(var(--spacing) * 7);
  --space-8:calc(var(--spacing) * 8);   --space-10:calc(var(--spacing) * 10);
  --space-12:calc(var(--spacing) * 12); --space-14:calc(var(--spacing) * 14); --space-16:calc(var(--spacing) * 16);
  --space-20:calc(var(--spacing) * 20); --space-24:calc(var(--spacing) * 24);

  /* Page geometry. These are layout constants, not design tokens. */
  --topbar-height:calc(var(--spacing) * 14);
  --layout-sidebar:calc(var(--spacing) * 68);
  --layout-outline:calc(var(--spacing) * 56);
  --layout-measure:calc(var(--spacing) * 190);
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  background-color:var(--color-surface);
}

body{
  margin:0;
  background:var(--color-surface);
  color:var(--color-text);
  font:var(--font-weight-normal) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans);
  overflow-x:hidden;
}

img,svg,canvas{max-width:100%;height:auto}
code,kbd,samp,pre{font-family:var(--font-mono)}
::selection{background:var(--color-background-info-soft-alpha)}
:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}

/* Text links: the SDK TextLink[data-underline] treatment, applied to bare anchors. */
:where(.MarkdownContent,.prose) a:not(.Button):not(.TextLink){
  color:inherit;
  text-decoration:underline;
  text-decoration-color:color-mix(in oklab, currentcolor 70%, transparent);
  text-underline-offset:var(--link-underline-decoration-offset);
  border-radius:var(--link-radius);
  overflow-wrap:anywhere;
}
@media (hover:hover) and (pointer:fine){
  :where(.MarkdownContent,.prose) a:not(.Button):not(.TextLink):hover{
    color:color-mix(in oklab, currentcolor 80%, transparent);
  }
}

hr{border:0;border-top:var(--hairline) solid var(--color-border);margin:var(--space-8) 0}

/* Small utility roles used across components. */
.text-secondary{color:var(--color-text-secondary)}
.text-tertiary{color:var(--color-text-tertiary)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Page chrome: top bar, sidebar navigation, layout grid and the "On this page" rail. */

/* ---- top bar ---- */
.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:var(--space-4);
  min-height:var(--topbar-height);
  padding:var(--space-2) var(--space-6);
  background:var(--color-surface);
  border-bottom:var(--hairline) solid var(--color-border);
}
.brand{
  display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;
  color:var(--color-text);
  font:var(--font-weight-semibold) var(--font-text-md-size)/1 var(--font-sans);
  letter-spacing:var(--tracking-tight);
}
.brand em{
  font-style:normal;color:var(--color-text-tertiary);
  font:var(--font-weight-normal) var(--font-text-sm-size)/1 var(--font-sans);
  letter-spacing:0;
  padding-left:var(--space-2);margin-left:var(--space-1);
  border-left:var(--hairline) solid var(--color-border);
}
.spark{flex:0 0 auto}
.topnav{margin-left:auto;display:flex;flex-wrap:wrap;gap:var(--space-1)}
.menu-btn{display:none;flex:0 0 auto}

/* ---- theme toggle (added by ds.js on every page) ---- */
.theme-toggle{flex:0 0 auto}
.theme-toggle-end{margin-left:auto}

/* ---- way back to the main menu (added by ds.js) ---- */
.home-btn{display:none;flex:0 0 auto;margin-left:auto}
.home-btn + .theme-toggle{margin-left:0}
.home-btn-always{display:inline-flex}
.sidebar .home-link{
  margin-bottom:var(--space-2);padding-bottom:var(--space-3);
  border-bottom:var(--hairline) solid var(--color-border);border-radius:0;
  color:var(--color-text-secondary);
}
.theme-toggle-float{position:fixed;top:var(--space-4);right:var(--space-4);z-index:30;background:var(--color-surface)}

/* ---- drawer scrim (mobile) ---- */
#sb-scrim{
  position:fixed;inset:0;z-index:34;
  background:var(--modal-backdrop-background);
  opacity:0;visibility:hidden;
  transition:opacity var(--transition-duration-basic) var(--transition-ease-basic);
}
#sb-scrim.open{opacity:1;visibility:visible}

/* ---- layout grid ---- */
.layout{
  display:grid;
  grid-template-columns:var(--layout-sidebar) minmax(0,1fr);
  max-width:calc(var(--layout-sidebar) + var(--layout-measure) + var(--layout-outline));
  margin:0 auto;
}
.layout.no-sidebar{grid-template-columns:minmax(0,1fr)}
.sidebar{
  border-right:var(--hairline) solid var(--color-border);
  padding:var(--space-8) var(--space-4) var(--space-16);
}
.sticky{position:sticky;top:calc(var(--topbar-height) + var(--space-4))}

/* ---- sidebar navigation items (SDK Menu item metrics) ---- */
.modlink{
  display:flex;align-items:baseline;gap:var(--space-2);
  padding:var(--space-1-5) var(--control-gutter-md);
  border-radius:var(--control-radius-md);
  color:var(--color-text-secondary);
  font:var(--font-weight-medium) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
  transition:background-color var(--transition-duration-basic) var(--transition-ease-basic),
             color var(--transition-duration-basic) var(--transition-ease-basic);
}
.modlink .num{
  font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);
  font-weight:var(--font-weight-medium);
}
@media (hover:hover) and (pointer:fine){
  .modlink:hover{background:var(--color-background-primary-ghost-hover);color:var(--color-text)}
}
.modlink.active,.modlink[aria-current="page"]{
  background:var(--color-background-primary-soft-alpha);
  color:var(--color-text);font-weight:var(--font-weight-semibold);
}
.sub{
  display:flex;flex-direction:column;
  margin:var(--space-1) 0 var(--space-3) var(--space-5);
  padding-left:var(--space-3);
  border-left:var(--hairline) solid var(--color-border);
}
.sub a{
  padding:var(--space-1) var(--control-gutter-xs);
  border-radius:var(--control-radius-sm);
  color:var(--color-text-secondary);
  font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
}
@media (hover:hover) and (pointer:fine){.sub a:hover{color:var(--color-text);background:var(--color-background-primary-ghost-hover)}}
.sub a.active,.sub a[aria-current]{color:var(--color-text);font-weight:var(--font-weight-semibold)}

/* ---- "On this page" rail (wide screens) ---- */
.outline{display:none}
@media (min-width:1280px){
  .layout.has-outline{grid-template-columns:var(--layout-sidebar) minmax(0,1fr) var(--layout-outline)}
  .layout.has-outline .outline{display:block;padding:var(--space-8) var(--space-4) var(--space-16) var(--space-2)}
}
.outline-h{
  margin:0 0 var(--space-2) var(--space-3);
  color:var(--color-text-tertiary);
  font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
}
.outline a{
  display:block;padding:var(--space-1) var(--space-3);
  border-left:2px solid transparent;
  color:var(--color-text-secondary);
  font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
}
.outline a.h3{padding-left:var(--space-6)}
@media (hover:hover) and (pointer:fine){.outline a:hover{color:var(--color-text)}}
.outline a.active{color:var(--color-text);border-left-color:var(--color-text);font-weight:var(--font-weight-semibold)}

/* ---- page navigation cards and footer ---- */
.pagenav{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin:var(--space-16) 0 var(--space-8)}
.navcard{
  flex:1 1 calc(var(--spacing) * 60);
  display:flex;flex-direction:column;gap:var(--space-1);
  padding:var(--space-4) var(--space-5);
  background:var(--color-surface);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-hairline);
  transition:background-color var(--transition-duration-basic) var(--transition-ease-basic);
}
@media (hover:hover) and (pointer:fine){.navcard:hover{background:var(--color-surface-secondary)}}
.navcard.next{text-align:right;align-items:flex-end}
.navcard .lbl{color:var(--color-text-tertiary);font:var(--font-weight-medium) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.navcard .ttl{color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.foot{
  margin-top:var(--space-8);padding-top:var(--space-5);
  border-top:var(--hairline) solid var(--color-border);
  color:var(--color-text-tertiary);
  font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
}
.foot a{text-decoration:underline;text-underline-offset:var(--link-underline-decoration-offset)}

/* ---- tablet and phone: one column, drawer navigation ---- */
@media (max-width:880px){
  .layout,.layout.has-outline{grid-template-columns:minmax(0,1fr)}
  .menu-btn{display:inline-block}
  .topnav{display:none}
  .home-btn{display:inline-flex}
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;z-index:35;
    width:calc(var(--spacing) * 70);max-width:86vw;max-height:100%;
    padding:0;overflow-y:auto;
    background:var(--color-surface-elevated);
    border-right:0;box-shadow:var(--shadow-300),var(--shadow-hairline);
    transform:translateX(-100%);
    transition:transform .22s var(--cubic-enter);
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar .sticky{position:static;padding:var(--space-5) var(--space-3) var(--space-10)}
}
@media (max-width:560px){
  .topbar{padding:var(--space-2) var(--space-4);gap:var(--space-3)}
  .brand em{display:none}
  .pagenav{flex-direction:column;gap:var(--space-3)}
  .navcard{flex:1 1 auto}
  .navcard.next{text-align:left;align-items:flex-start}
}

/* Long-form reading. The SDK's Markdown component (vendored) styles headings, lists,
   quotes and tables inside .MarkdownContent. This file sets the reading size and adds
   what Markdown output needs that the SDK component does not cover: code, callouts,
   task lists and figures. */

.content{
  min-width:0;max-width:var(--layout-measure);
  padding:var(--space-12) var(--space-14) var(--space-24);
}
.MarkdownContent{
  font:var(--font-weight-normal) var(--font-text-lg-size)/var(--font-text-lg-line-height) var(--font-sans);
  color:var(--color-text);
}
.MarkdownContent h1,.MarkdownContent h2,.MarkdownContent h3,.MarkdownContent h4{
  color:var(--color-text);letter-spacing:var(--tracking-tight);
}
.MarkdownContent li > p{margin:0}

/* Inline code: SDK InlineCode. */
.MarkdownContent :not(pre) > code,.prose :not(pre) > code{
  padding:1px 0.3rem;border-radius:var(--radius-xs);
  background-color:var(--alpha-04);
  box-shadow:inset 0 0 0 1px var(--alpha-08);
  color:inherit;font-size:0.875em;font-weight:var(--font-weight-medium);
  overflow-wrap:anywhere;
}

/* Code blocks: SDK CodeBlock container and type. */
.MarkdownContent pre,.prose pre{
  overflow:auto;margin:var(--space-5) 0;
  padding:var(--space-3-5) var(--space-4);
  background-color:var(--codeblock-background-color);
  border:var(--hairline) solid var(--color-border);
  border-radius:var(--radius-md);
  color:var(--color-text);
  font-size:0.875em;line-height:1.5;
  white-space:pre;tab-size:4;
}
.MarkdownContent pre code{background:none;box-shadow:none;padding:0;font-size:1em;font-weight:var(--font-weight-normal)}

/* Tables: SDK Markdown table, kept scrollable on narrow screens. */
.MarkdownContent table{display:block;overflow-x:auto;max-width:100%}
.MarkdownContent th{color:var(--color-text);font-weight:var(--font-weight-semibold)}
.MarkdownContent td code,.MarkdownContent th code{font-size:0.8125em}

/* Figures and media. */
.MarkdownContent img{border-radius:var(--radius-lg)}
.MarkdownContent details{
  margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-hairline);
}
.MarkdownContent summary{cursor:pointer;font-weight:var(--font-weight-semibold)}
.MarkdownContent kbd{
  padding:0 var(--space-1-5);border-radius:var(--radius-xs);
  box-shadow:inset 0 0 0 1px var(--color-border-strong);
  font-size:0.875em;
}

/* Callout: the "For the [audience]" briefing. Same surface as an SDK soft Alert. */
.MarkdownContent blockquote.pm-callout,.pm-callout{
  position:relative;margin:var(--space-6) 0;
  padding:var(--alert-gutter);
  border-radius:var(--alert-border-radius);
  background-color:var(--color-background-primary-surface);
  box-shadow:0 0 0 1px var(--color-border-primary-surface) inset;
  color:var(--color-text);
  font-size:var(--font-text-md-size);line-height:var(--font-text-md-line-height);
}
.pm-callout::before{display:none}
.pm-callout > p{margin:var(--space-2) 0 0}
.pm-callout > p:first-child{
  margin-top:0;
  font-weight:var(--alert-title-font-weight);
}

/* Plain quotes: SDK blockquote (left rule from Markdown.css). Reset our own legacy look. */
.MarkdownContent blockquote:not(.pm-callout){color:var(--color-text-secondary)}

/* Task lists produced by "[ ]" and "[x]" in markdown. */
.MarkdownContent li.task{list-style:none;margin-left:calc(var(--space-6) * -1);padding-left:var(--space-7);position:relative}
.MarkdownContent li.task::before{position:absolute;left:0;top:0;width:1.2em;height:1.2em;color:var(--color-text-tertiary)}
.MarkdownContent li.todo::before{content:"☐"}
.MarkdownContent li.done::before{content:"☑";color:var(--color-text-success)}

.totop{
  display:inline-block;margin-top:var(--space-6);
  color:var(--color-text-tertiary);
  font:var(--font-weight-medium) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
}
@media (hover:hover) and (pointer:fine){.totop:hover{color:var(--color-text)}}

@media (max-width:880px){.content{padding:var(--space-8) var(--space-6) var(--space-20)}}
@media (max-width:560px){
  .content{padding:var(--space-6) var(--space-4) var(--space-16)}
  .MarkdownContent{font-size:var(--font-text-md-size);line-height:var(--font-text-md-line-height)}
  .MarkdownContent pre{border-radius:var(--radius-lg)}
}

/* Page compositions built from SDK parts: hero, contents list, lesson headers, recap,
   card grids and the index hero. Badges, buttons and alerts are SDK components. */

/* ---- hero ---- */
.hero{border-bottom:var(--hairline) solid var(--color-border);padding-bottom:var(--space-8);margin-bottom:var(--space-4)}
.hero .Badge{margin-bottom:var(--space-4)}
.hero h1{
  margin:0 0 var(--space-2);
  font:var(--font-heading-xl-weight) var(--font-heading-xl-size)/var(--font-heading-xl-line-height) var(--font-sans);
  letter-spacing:var(--font-heading-xl-tracking);color:var(--color-text);
}
.lede{
  margin:var(--space-2) 0 var(--space-3);color:var(--color-text-secondary);
  font:var(--font-weight-normal) var(--font-text-lg-size)/var(--font-text-lg-line-height) var(--font-sans);
}
.hero-meta{color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.hero-meta strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}

/* ---- contents list ---- */
.toc{
  margin:var(--space-8) 0 var(--space-2);padding:var(--space-4) var(--space-5);
  background:var(--color-surface-secondary);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-hairline);
}
.toc-h{
  margin-bottom:var(--space-2);color:var(--color-text-tertiary);
  font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
}
.toc a{
  display:flex;gap:var(--space-3);padding:var(--space-2) 0;
  border-bottom:var(--hairline) solid var(--color-border-subtle);
  color:var(--color-text);
  font:var(--font-weight-normal) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans);
}
.toc a:last-child{border-bottom:0}
.toc a span{min-width:var(--space-8);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}
@media (hover:hover) and (pointer:fine){.toc a:hover{color:var(--color-text-secondary)}}

/* ---- lessons ---- */
.lesson{padding:var(--space-12) 0 var(--space-2);margin-top:var(--space-8);border-top:var(--hairline) solid var(--color-border)}
.lesson:first-of-type{border-top:0}
.lesson-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}
.lesson-head h2{margin:0;padding:0;border:0;flex:1 1 auto;min-width:0}
.lesson > h2{margin-top:0}

/* ---- recap ---- */
.recap{
  margin-top:var(--space-10);padding:var(--space-8) var(--space-8) var(--space-4);
  background:var(--color-surface-secondary);
  border-radius:var(--radius-2xl);box-shadow:var(--shadow-hairline);
}
.recap-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}
.recap-head h2{margin:0;padding:0;border:0}

/* ---- index hero ---- */
.index{max-width:calc(var(--spacing) * 270);margin:0 auto;padding:var(--space-16) var(--space-10) var(--space-24)}
.index-hero{text-align:center;padding:var(--space-5) 0 var(--space-8)}
.index-hero .Badge{margin-bottom:var(--space-4)}
.index-hero h1{
  margin:0 0 var(--space-3);color:var(--color-text);
  font:var(--font-heading-3xl-weight) var(--font-heading-3xl-size)/var(--font-heading-3xl-line-height) var(--font-sans);
  letter-spacing:var(--tracking-tight);
}
.index-hero h1 em{font-style:normal;color:var(--color-text-secondary)}
.index-hero .lede{max-width:calc(var(--spacing) * 180);margin:0 auto}
.index-insight{
  max-width:calc(var(--spacing) * 180);margin:var(--space-6) auto 0;padding:var(--space-4) var(--space-5);
  background:var(--color-background-discovery-surface);border:var(--hairline) solid var(--color-border-discovery-surface);
  border-radius:var(--radius-xl);
}
.index-hero .index-insight .Badge{margin-bottom:var(--space-2)}
.index-insight p{
  margin:0;color:var(--color-text);
  font:var(--font-weight-semibold) var(--font-text-lg-size)/var(--font-text-lg-line-height) var(--font-sans);
}
.index-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-6)}

.pm-band{margin:var(--space-8) auto;max-width:calc(var(--spacing) * 215)}
.sec{
  margin:var(--space-16) 0 var(--space-6);text-align:center;color:var(--color-text);
  font:var(--font-heading-lg-weight) var(--font-heading-lg-size)/var(--font-heading-lg-line-height) var(--font-sans);
  letter-spacing:var(--tracking-tight);
}

/* ---- cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--spacing) * 75),1fr));gap:var(--space-5)}
.card{
  position:relative;display:flex;flex-direction:column;
  padding:var(--space-6);
  background:var(--color-surface);
  border-radius:var(--radius-2xl);box-shadow:var(--shadow-hairline);
  color:var(--color-text);
  transition:background-color var(--transition-duration-basic) var(--transition-ease-basic);
}
@media (hover:hover) and (pointer:fine){.card:hover{background:var(--color-surface-secondary)}}
.card .Badge{align-self:flex-start;margin-bottom:var(--space-3)}
.card h3{
  margin:0 0 var(--space-1);color:var(--color-text);
  font:var(--font-heading-md-weight) var(--font-heading-md-size)/var(--font-heading-md-line-height) var(--font-sans);
}
.card p{margin:0 0 var(--space-3);color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.card ul{margin:0;padding-left:var(--space-4);list-style:disc;color:var(--color-text);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.card li{margin:var(--space-1) 0}
.card li.more{list-style:none;margin-left:calc(var(--space-4) * -1);color:var(--color-text-tertiary)}
.card-iw{margin-top:auto;padding-top:var(--space-3);color:var(--color-text-tertiary);font:var(--font-weight-medium) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.card-go{padding-top:var(--space-2);color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}

.threads{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--spacing) * 70),1fr));gap:var(--space-4);max-width:calc(var(--spacing) * 230);margin:0 auto}
.thread{padding:var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-hairline)}
.thread-t{margin-bottom:var(--space-1);color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.thread p{margin:0;color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}

@media (max-width:880px){.hero h1{font-size:var(--font-heading-lg-size);line-height:var(--font-heading-lg-line-height)}
  .index-hero h1{font-size:var(--font-heading-xl-size);line-height:var(--font-heading-xl-line-height)}}
@media (max-width:560px){
  .index{padding:var(--space-8) var(--space-4) var(--space-16)}
  .cards,.threads{grid-template-columns:1fr}
  .recap{padding:var(--space-5) var(--space-5) var(--space-2)}
  .index-hero .lede{font-size:var(--font-text-md-size);line-height:var(--font-text-md-line-height)}
}

/* In-page interactive demos (AI engineering module). Buttons are SDK Buttons.
   Toggles reuse the SDK Switch tokens. Data colours are semantic solids. */

.interactive{
  margin:var(--space-8) 0;overflow:hidden;
  border-radius:var(--radius-2xl);box-shadow:var(--shadow-hairline);
  background:var(--color-surface);
}
.iw-head{
  display:flex;align-items:center;gap:var(--space-3);
  padding:var(--space-3) var(--space-5);
  background:var(--color-surface-secondary);
  border-bottom:var(--hairline) solid var(--color-border);
}
.iw-head h3{margin:0;color:var(--color-text);font:var(--font-heading-sm-weight) var(--font-heading-sm-size)/var(--font-heading-sm-line-height) var(--font-sans)}
.iw-body{padding:var(--space-5) var(--space-6);font:var(--font-weight-normal) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.iw-controls{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);align-items:flex-end;margin-bottom:var(--space-4)}
.iw-field{display:flex;flex-direction:column;gap:var(--space-1-5);color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.iw-field label{color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.iw-field .v,.v{color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}
.iw-field input[type=range]{width:calc(var(--spacing) * 48);cursor:pointer;accent-color:var(--color-background-primary-solid)}
.iw-btns{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}

/* Toggle: SDK Switch geometry on a native checkbox. */
.iw-toggle{display:inline-flex;align-items:center;gap:var(--switch-label-gap);cursor:pointer;user-select:none;font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);color:var(--color-text)}
.iw-toggle input{
  appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto;margin:0;cursor:pointer;
  width:var(--switch-track-width);height:var(--switch-track-height);
  border-radius:var(--radius-full);background:var(--switch-track-color);
  transition:background-color 250ms var(--cubic-move);
}
.iw-toggle input::before{
  content:"";position:absolute;top:var(--switch-thumb-offset);left:var(--switch-thumb-offset);
  width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:var(--radius-full);
  background:var(--switch-thumb-color);box-shadow:var(--switch-thumb-shadow);
  transition:transform 250ms var(--cubic-move);
}
.iw-toggle input:checked{background:var(--switch-track-color-checked)}
.iw-toggle input:checked::before{transform:translateX(calc(var(--switch-track-width) - var(--switch-thumb-size) - var(--switch-thumb-offset) * 2))}
@media (hover:hover) and (pointer:fine){.iw-toggle input:not(:checked):hover{background:var(--switch-track-color-hover)}}

.iw-out{margin-top:var(--space-2);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface-secondary)}
.iw-note{margin-top:var(--space-3);color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.iw-good{color:var(--color-text-success);font-weight:var(--font-weight-semibold)}
.iw-bad{color:var(--color-text-danger);font-weight:var(--font-weight-semibold)}
.iw-verdict{margin-top:var(--space-1);font:var(--font-weight-semibold) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.iw-metric{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin:var(--space-2) 0}
.iw-metric .ml{min-width:calc(var(--spacing) * 30);color:var(--color-text);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.iw-metric .mv,.mv{color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-mono);font-variant-numeric:tabular-nums}
.iw-track{flex:1;height:var(--space-3);border-radius:var(--radius-full);overflow:hidden;background:var(--color-background-primary-soft-alpha)}
.iw-fill{height:100%;width:0;border-radius:var(--radius-full);background:var(--color-background-primary-solid);transition:width .45s var(--cubic-move),background-color .3s}
.iw-label{color:var(--color-text-tertiary);font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}

/* pipeline stages */
.iw-stages{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin:var(--space-1-5) 0 var(--space-1)}
.iw-stage{
  padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);
  background:var(--color-surface);box-shadow:var(--shadow-hairline);color:var(--color-text-secondary);
  font:var(--font-weight-medium) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
  transition:opacity .25s,background-color .25s;
}
.iw-stage.on{background:var(--color-background-info-surface);color:var(--color-text-info-surface);box-shadow:0 0 0 1px var(--color-border-info-surface) inset}
.iw-stage.dim{opacity:.4}
.iw-stage.kill{background:var(--color-background-danger-surface);color:var(--color-text-danger-surface);box-shadow:0 0 0 1px var(--color-border-danger-surface) inset}
.iw-arrow{color:var(--color-text-tertiary)}

/* chunk grid */
.iw-grid{display:flex;flex-wrap:wrap;gap:var(--space-1-5);margin:var(--space-2-5) 0}
.iw-chunk{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-xs);background:var(--color-background-primary-soft-alpha)}
.iw-chunk.rel{background:var(--color-background-info-solid)}
.iw-chunk.kept{outline:2px solid var(--color-text);outline-offset:1px}

/* trace spans */
.iw-span{display:flex;align-items:center;gap:var(--space-2-5);margin:var(--space-1-5) 0;cursor:pointer}
.iw-span .sn{min-width:calc(var(--spacing) * 29);text-align:right;color:var(--color-text);font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.iw-spanbar-wrap{position:relative;flex:1;height:var(--space-5);border-radius:var(--radius-sm);background:var(--color-background-primary-soft-alpha)}
.iw-spanbar{position:absolute;height:var(--space-5);border-radius:var(--radius-sm);background:var(--color-background-info-solid);opacity:.85}
.iw-span:hover .iw-spanbar,.iw-span.sel .iw-spanbar{opacity:1;outline:2px solid var(--color-text)}
.iw-stack{display:flex;height:var(--space-5);margin:var(--space-1) 0 var(--space-0-5);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-hairline)}
.iw-stack span{display:block;height:100%}
.iw-legend{display:flex;gap:var(--space-4);margin-top:var(--space-1);color:var(--color-text-secondary);font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.iw-legend i{display:inline-block;width:var(--space-3);height:var(--space-3);margin-right:var(--space-1-5);border-radius:var(--radius-2xs);vertical-align:-1px}

/* data colours, theme-aware */
.dv-info{background:var(--color-background-info-solid)}
.dv-success{background:var(--color-background-success-solid)}
.dv-caution{background:var(--color-background-caution-solid)}
.dv-discovery{background:var(--color-background-discovery-solid)}
.dv-danger{background:var(--color-background-danger-solid)}
.dv-muted{background:var(--color-background-primary-soft-alpha)}

@media (max-width:880px){.iw-field input[type=range]{width:calc(var(--spacing) * 40)}}
@media (max-width:560px){
  .iw-body{padding:var(--space-4)}
  .iw-metric{flex-wrap:wrap;row-gap:var(--space-1)}
  .iw-metric .ml{min-width:0;flex:1 1 auto}
  .iw-metric .mv{flex:0 0 auto}
  .iw-track{flex:1 1 100%;order:3}
  .iw-span{flex-wrap:wrap;row-gap:var(--space-1)}
  .iw-span .sn{min-width:0;text-align:left;flex:1 1 100%}
}

/* Range slider: native control, drawn with SDK tokens (track = soft fill, thumb = solid primary). */
.iw-field input[type=range]{
  appearance:none;-webkit-appearance:none;height:var(--space-5);background:transparent;margin:0;
}
.iw-field input[type=range]::-webkit-slider-runnable-track{height:var(--space-1);border-radius:var(--radius-full);background:var(--color-background-primary-soft-alpha-active)}
.iw-field input[type=range]::-moz-range-track{height:var(--space-1);border-radius:var(--radius-full);background:var(--color-background-primary-soft-alpha-active)}
.iw-field input[type=range]::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;width:var(--space-4);height:var(--space-4);margin-top:calc((var(--space-1) - var(--space-4)) / 2);
  border-radius:var(--radius-full);background:var(--color-background-primary-solid);box-shadow:var(--switch-thumb-shadow);
}
.iw-field input[type=range]::-moz-range-thumb{
  width:var(--space-4);height:var(--space-4);border:0;border-radius:var(--radius-full);
  background:var(--color-background-primary-solid);box-shadow:var(--switch-thumb-shadow);
}

/* Landing page, diagrams and the hand-built figure cards. */

/* ---- landing ---- */
.landing{max-width:calc(var(--spacing) * 350);padding:var(--space-24) var(--space-8) var(--space-20)}
.landing .eyebrow{
  display:inline-block;margin-bottom:var(--space-4);color:var(--color-text-secondary);
  font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
}
.landing h1{
  margin:0 0 var(--space-3);color:var(--color-text);
  font:var(--font-heading-4xl-weight) var(--font-heading-3xl-size)/var(--font-heading-3xl-line-height) var(--font-sans);
  letter-spacing:var(--tracking-tight);text-wrap:balance;
}
.landing .lede{
  max-width:calc(var(--spacing) * 150);margin:0;color:var(--color-text-secondary);
  font:var(--font-weight-normal) var(--font-text-lg-size)/var(--font-text-lg-line-height) var(--font-sans);
}
.landing .group{
  margin:var(--space-12) 0 0;display:flex;align-items:baseline;gap:var(--space-3);
  color:var(--color-text-secondary);
  font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
}
.landing .cards{margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(calc(var(--spacing) * 64),1fr))}
.landing .card h3{margin-top:var(--space-1)}
.landing .foot{margin-top:var(--space-16)}
@media (max-width:680px){
  .landing{padding:var(--space-16) var(--space-4) var(--space-16)}
  .landing h1{font-size:var(--font-heading-xl-size);line-height:var(--font-heading-xl-line-height)}
  .landing .lede{font-size:var(--font-text-md-size);line-height:var(--font-text-md-line-height)}
}

/* ---- Mermaid diagrams: a soft figure card. Colours come from tokens so the diagram
   follows light and dark themes without re-rendering (see design_system.mermaid_config). ---- */
pre.mermaid{
  margin:var(--space-6) 0;padding:var(--space-6) var(--space-5);
  overflow-x:auto;text-align:center;white-space:normal;
  background:var(--color-surface-secondary);
  border:0;border-radius:var(--radius-2xl);box-shadow:var(--shadow-hairline);
  color:var(--color-text);
}
pre.mermaid:not([data-processed]){height:calc(var(--spacing) * 35);overflow:hidden;color:transparent}
pre.mermaid svg{max-width:100%;height:auto;display:inline-block;shape-rendering:geometricPrecision}
.mm-hint{
  position:sticky;left:var(--space-2);display:block;width:max-content;
  margin:0 0 var(--space-2);padding:0 var(--space-2-5);border-radius:var(--radius-full);
  background:var(--color-background-primary-soft-alpha);color:var(--color-text-secondary);
  font:var(--font-weight-medium) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans);
  text-align:left;
}

/* Floating widgets: reader settings, graph button, glossary side sheet.
   Surfaces are SDK Popover and Menu. Controls are SDK Button and SegmentedControl. */

/* ---- floating action buttons (reader settings, knowledge graph) ---- */
.fab{
  position:fixed;right:var(--space-4);z-index:60;
  background:var(--color-surface-elevated);
  box-shadow:var(--shadow-200),var(--shadow-hairline);
  border-radius:var(--radius-full);
}
.fab::before{background-color:transparent}
#rs-root{position:fixed;right:var(--space-4);bottom:calc(var(--space-4) + var(--space-12) + var(--space-3));z-index:60}
#rs-root .fab{position:static}
.fab-graph{bottom:var(--space-4)}

/* ---- reader settings popover ---- */
#rs-panel{
  --popover-min-width:0;
  position:absolute;right:0;bottom:calc(var(--space-12) + var(--space-1));
  width:calc(var(--spacing) * 72);max-width:calc(100vw - var(--space-8));
  padding:var(--space-3);display:none;
  font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
  color:var(--color-text);
}
#rs-panel.open{display:block}
.rs-h{margin:var(--space-3) 0 var(--space-1-5) var(--space-1);color:var(--color-text-tertiary);font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.rs-h:first-child{margin-top:0}
.rs-row{display:flex;align-items:center;gap:var(--space-2)}
.rs-row .rs-val{flex:1;text-align:center;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.rs-fonts{display:flex;flex-direction:column}
.rs-fonts .MenuItem{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:none;text-align:left;font-size:var(--menu-font-size);line-height:var(--menu-line-height)}
.rs-fonts .MenuItem > span{position:relative}
.rs-fonts .MenuItem:hover::before,.rs-fonts .MenuItem[data-selected]::before{opacity:1;transform:scale(1)}
.rs-fonts .rs-check{visibility:hidden}
.rs-fonts .MenuItem[data-selected] .rs-check{visibility:visible}
#rs-panel .SegmentedControl{display:flex;width:100%}
#rs-reset{margin-top:var(--space-2);width:100%}
@media print{#rs-root,.fab{display:none}}

/* ---- glossary: inline terms, side sheet and key-terms card ---- */
.gloss-term{
  appearance:none;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;
  text-decoration:underline dotted;text-decoration-color:var(--color-text-tertiary);
  text-underline-offset:var(--link-underline-decoration-offset);
  border-radius:var(--radius-2xs);
  transition:background-color var(--transition-duration-basic) var(--transition-ease-basic),
             text-decoration-color var(--transition-duration-basic) var(--transition-ease-basic);
}
@media (hover:hover) and (pointer:fine){.gloss-term:hover{background:var(--color-background-info-soft-alpha);text-decoration-color:var(--color-text-info)}}
body.gl-open{overflow:hidden}
/* A key-term pill with a long name wraps instead of widening the page on a phone. */
/* The SDK button has a fixed height and no vertical padding. Keep that height as the floor and add
   vertical padding, so a one-line pill matches other small pills and a wrapped one has even padding. */
.gl-keyterm{max-width:100%;height:auto;min-height:var(--button-size);padding-block:var(--space-1-5);
  line-height:var(--font-text-sm-line-height);white-space:normal;text-align:left}
.gl-keyterm .ButtonInner{white-space:normal}
#gl-scrim{
  position:fixed;inset:0;z-index:10000;background:var(--modal-backdrop-background);
  opacity:0;visibility:hidden;transition:opacity var(--transition-duration-basic) var(--transition-ease-basic);
}
#gl-scrim.open{opacity:1;visibility:visible}
#gl-panel{
  position:fixed;top:0;right:0;z-index:10001;height:100%;width:calc(var(--spacing) * 98);max-width:92vw;
  padding:var(--space-8) var(--space-6) var(--space-12);overflow-y:auto;
  background:var(--color-surface-elevated);color:var(--color-text);
  box-shadow:var(--shadow-400),var(--shadow-hairline);
  transform:translateX(102%);transition:transform .24s var(--cubic-enter);
  font:var(--font-weight-normal) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans);
}
#gl-panel.open{transform:translateX(0)}
#gl-close{position:absolute;top:var(--space-3);right:var(--space-3)}
#gl-panel .Badge{margin-bottom:var(--space-3)}
#gl-panel .gl-term-h{margin:0 0 var(--space-1);padding-right:var(--space-10);color:var(--color-text);font:var(--font-heading-lg-weight) var(--font-heading-lg-size)/var(--font-heading-lg-line-height) var(--font-sans);letter-spacing:var(--tracking-tight)}
#gl-panel .gl-sec{margin-top:var(--space-5)}
#gl-panel .gl-lab{margin-bottom:var(--space-1);color:var(--color-text-tertiary);font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
#gl-panel .gl-sec p{margin:0}
#gl-panel .gl-sec ul{margin:0;padding-left:var(--space-5);list-style:disc}
#gl-panel .gl-sec li{margin:var(--space-1) 0}
#gl-panel .gl-rels{display:flex;flex-wrap:wrap;gap:var(--space-2)}
#gl-panel .gl-see{display:inline-flex;margin-top:var(--space-6)}
@media (max-width:520px){#gl-panel{width:100%;max-width:100%;padding:var(--space-6) var(--space-5) var(--space-10)}}

#gl-keybox{margin:0 0 var(--space-6);padding:var(--space-4);border-radius:var(--radius-xl);background:var(--color-surface-secondary);box-shadow:var(--shadow-hairline)}
#gl-keybox .gl-keylab{margin-bottom:var(--space-2);color:var(--color-text-tertiary);font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
#gl-keybox .gl-keychips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media print{.gloss-term{text-decoration:none}#gl-panel,#gl-scrim{display:none}}

/* ---- knowledge-graph page chrome ---- */
.graph-page{height:100%;overflow:hidden;background:var(--color-surface-secondary)}
html:has(.graph-page){height:100%}
.graph-bar{position:fixed;top:0;left:0;right:0}
.graph-bar #search{flex:1;min-width:calc(var(--spacing) * 15);max-width:calc(var(--spacing) * 85)}
.graph-bar .tgl{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;user-select:none;font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.graph-bar #listBtn{margin-left:auto}
#cv{position:fixed;inset:0;display:block;cursor:grab;touch-action:none}
#cv.dragging{cursor:grabbing}
#cv.overnode{cursor:pointer}
#cv3d{position:fixed;inset:0;display:none}
.graph-sheet{
  position:fixed;z-index:25;
  background:var(--color-surface-elevated);color:var(--color-text);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-300),var(--shadow-hairline);
}
#legend{left:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-0-5);padding:var(--space-3) var(--space-4);max-width:calc(var(--spacing) * 70)}
#legend .lg-h{margin-bottom:var(--space-1);color:var(--color-text-tertiary);font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
.legend-chip{
  display:flex;align-items:center;gap:var(--space-2);margin:0 calc(var(--space-2) * -1);padding:var(--space-1) var(--space-2);
  border:0;border-radius:var(--radius-md);background:none;color:var(--color-text);text-align:left;cursor:pointer;
  font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
}
@media (hover:hover) and (pointer:fine){.legend-chip:hover{background:var(--color-background-primary-ghost-hover)}}
.legend-chip .dot{width:var(--space-2-5);height:var(--space-2-5);border-radius:var(--radius-full);flex:0 0 auto}
.legend-chip .n{margin-left:auto;color:var(--color-text-tertiary);font-size:var(--font-text-xs-size)}
.legend-chip.off{opacity:.4}
.legend-chip.off .dot{background:var(--color-text-tertiary) !important}
#tip{position:fixed;z-index:40;display:none;max-width:calc(var(--spacing) * 72);padding:var(--space-2) var(--space-3);pointer-events:none;border-radius:var(--radius-md);background:var(--color-background-primary-solid);color:var(--color-text-primary-solid);box-shadow:var(--shadow-300);font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
#tip .t-track{display:block;margin-top:var(--space-0-5);opacity:.75;font-size:var(--font-text-xs-size)}
#card{right:var(--space-4);bottom:var(--space-4);display:none;width:calc(var(--spacing) * 80);max-width:calc(100vw - var(--space-8));max-height:46vh;overflow:auto;padding:var(--space-4) var(--space-5)}
#card .c-track{font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
#card h2{margin:var(--space-1) 0 var(--space-2);font:var(--font-heading-xs-weight) var(--font-heading-sm-size)/var(--font-heading-sm-line-height) var(--font-sans)}
#card .c-open{display:inline-block;margin:0 0 var(--space-3);font-weight:var(--font-weight-medium);text-decoration:underline;text-underline-offset:var(--link-underline-decoration-offset)}
#card .c-h{margin:var(--space-3) 0 var(--space-1);color:var(--color-text-tertiary);font:var(--font-weight-semibold) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
#card ul,#panel ul{list-style:none;margin:0;padding:0}
#card li{padding:var(--space-0-5) 0;font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
#card .c-close{position:sticky;top:0;float:right;border:0;background:none;color:var(--color-text-tertiary);font-size:var(--font-text-lg-size);cursor:pointer;padding:0 0 var(--space-1) var(--space-2)}
#panel{
  position:fixed;top:0;right:0;bottom:0;z-index:35;width:calc(var(--spacing) * 90);max-width:92vw;overflow:auto;
  padding:var(--space-4) var(--space-5) var(--space-10);
  background:var(--color-surface-elevated);box-shadow:var(--shadow-400),var(--shadow-hairline);
  transform:translateX(105%);transition:transform .22s var(--cubic-enter);
}
#panel.open{transform:none}
#panel .p-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}
#panel h2{margin:0;font:var(--font-heading-xs-weight) var(--font-heading-xs-size)/var(--font-heading-xs-line-height) var(--font-sans)}
#panel details{padding:var(--space-2) 0;border-top:var(--hairline) solid var(--color-border)}
#panel summary{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
#panel summary .dot{display:inline-block;width:var(--space-2-5);height:var(--space-2-5);border-radius:var(--radius-full)}
#panel ul{margin:var(--space-1-5) 0;padding-left:var(--space-4)}
#panel li{padding:var(--space-0-5) 0;font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
#panel a:hover,#card li a:hover{text-decoration:underline}
#hint{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--space-4);z-index:20;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-elevated);box-shadow:var(--shadow-hairline);color:var(--color-text-secondary);pointer-events:none;white-space:nowrap;transition:opacity .5s;font:var(--font-weight-normal) var(--font-text-xs-size)/var(--font-text-xs-line-height) var(--font-sans)}
@media (max-width:720px){
  .graph-bar{gap:var(--space-2);padding:var(--space-2) var(--space-3)}
  .graph-bar .brand,.graph-bar .tgl span,#hint{display:none}
  #legend,#card{left:0;right:0;bottom:0;top:auto;width:100%;max-width:100%;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}
  #legend{max-height:34vh;overflow:auto;flex-direction:row;flex-wrap:wrap;gap:var(--space-1-5) var(--space-4)}
  #legend .lg-h{width:100%}
  #card{max-height:52vh}
}

/* A pointer from a lesson to the visual explainer that follows one example through the same idea. */
.explainer-link{margin:0 0 var(--space-6)}

/* Self-assessment page (business-acumen track): rating grid, live axis scores,
   radar chart and the generated plan. Tokens only. Four cluster families:
   foundations = info, business = success, product = warning, people = discovery. */

.asm{margin:var(--space-6) 0}
.asm-intro{color:var(--color-text-secondary)}
.asm-scale{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0 var(--space-6);
  font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);color:var(--color-text-secondary)}

/* ---- one axis = one card ---- */
.asm-axis{
  margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);
  border:var(--hairline) solid var(--color-border);border-left-width:var(--space-1);
  border-radius:var(--radius-xl);background:var(--color-surface);
}
.asm-axis legend{padding:0 var(--space-1);color:var(--color-text);
  font:var(--font-heading-xs-weight) var(--font-heading-xs-size)/var(--font-heading-xs-line-height) var(--font-sans)}
.asm-axis-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}
.asm-axis-score{font:var(--font-weight-semibold) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans);
  font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}
.asm-axis-link{font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.asm-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);
  padding:var(--space-2-5) 0;border-top:var(--hairline) solid var(--color-border-subtle)}
.asm-item:first-of-type{border-top:0}
.asm-stmt{flex:1 1 calc(var(--spacing) * 80);margin:0;color:var(--color-text);
  font:var(--font-weight-normal) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.asm-rate{display:inline-flex;gap:var(--space-1);border:0;margin:0;padding:0}
.asm-rate label{position:relative;display:inline-flex}
.asm-rate input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.asm-rate span{
  display:inline-flex;align-items:center;justify-content:center;
  width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);
  border-radius:var(--radius-full);border:var(--hairline) solid var(--color-border-strong);
  background:var(--color-surface);color:var(--color-text-secondary);
  font:var(--font-weight-semibold) var(--font-text-sm-size)/1 var(--font-sans);
  transition:background-color var(--transition-duration-basic) var(--transition-ease-basic);
}
.asm-rate input:focus-visible + span{outline:var(--space-0-5) solid var(--color-border-info-outline);outline-offset:var(--space-0-5)}
.asm-rate input:checked + span{background:var(--color-background-primary-solid);border-color:var(--color-background-primary-solid);color:var(--color-text-inverse)}
@media (hover:hover) and (pointer:fine){.asm-rate input:not(:checked):hover + span{background:var(--color-background-secondary-soft)}}

/* cluster accents on the card edge */
.asm-axis[data-cluster="found"]{border-left-color:var(--color-border-info-outline)}
.asm-axis[data-cluster="biz"]{border-left-color:var(--color-border-success-outline)}
.asm-axis[data-cluster="prod"]{border-left-color:var(--color-border-warning-outline)}
.asm-axis[data-cluster="people"]{border-left-color:var(--color-border-discovery-outline)}

/* ---- results: radar + plan ---- */
.asm-results{
  margin:var(--space-8) 0;padding:var(--space-5);
  border-radius:var(--radius-2xl);box-shadow:var(--shadow-hairline);background:var(--color-surface-secondary);
}
.asm-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-3)}
.asm-radar{display:block;width:100%;max-width:calc(var(--spacing) * 140);height:auto;margin:0 auto}
.asm-radar .ring{fill:none;stroke:var(--color-border)}
.asm-radar .spoke{stroke:var(--color-border-subtle)}
.asm-radar .ring-label{fill:var(--color-text-tertiary);font:var(--font-weight-normal) var(--font-text-2xs-size)/1 var(--font-sans)}
.asm-radar .axis-label{fill:var(--color-text);font:var(--font-weight-semibold) var(--font-text-xs-size)/1 var(--font-sans)}
.asm-radar .shape{fill:var(--color-background-primary-soft-alpha);stroke:var(--color-text-primary);stroke-width:2;stroke-linejoin:round}
.asm-radar .wedge{opacity:.55}
.asm-radar .wedge.found{fill:var(--color-background-info-surface)}
.asm-radar .wedge.biz{fill:var(--color-background-success-surface)}
.asm-radar .wedge.prod{fill:var(--color-background-warning-surface)}
.asm-radar .wedge.people{fill:var(--color-background-discovery-surface)}
.asm-radar .dot.found{fill:var(--color-background-info-solid)}
.asm-radar .dot.biz{fill:var(--color-background-success-solid)}
.asm-radar .dot.prod{fill:var(--color-background-warning-solid)}
.asm-radar .dot.people{fill:var(--color-background-discovery-solid)}

.asm-plan{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:var(--space-3)}
.asm-plan li{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);
  border:var(--hairline) solid var(--color-border)}
.asm-plan .asm-plan-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}
.asm-plan .asm-plan-title{color:var(--color-text);font:var(--font-weight-semibold) var(--font-text-md-size)/var(--font-text-md-line-height) var(--font-sans)}
.asm-plan p{margin:var(--space-1) 0 0;color:var(--color-text-secondary);
  font:var(--font-weight-normal) var(--font-text-sm-size)/var(--font-text-sm-line-height) var(--font-sans)}
.asm-empty{color:var(--color-text-secondary)}
.asm-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}
@media print{.asm-actions{display:none}}

/* Reader preferences, set on <html> by the reader-settings widget:
     data-rf  font family     data-rs  text scale (--rs-scale)     data-rm  column width
   They scale the SDK type tokens. They never introduce new sizes. */

html[data-rf="system"]{--rs-font:ui-sans-serif,-apple-system,system-ui,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif}
html[data-rf="tahoma"]{--rs-font:Tahoma,Verdana,"Segoe UI",sans-serif}
html[data-rf="arial"]{--rs-font:Arial,"Helvetica Neue",Helvetica,sans-serif}
html[data-rf="verdana"]{--rs-font:Verdana,Geneva,"DejaVu Sans",sans-serif}
html[data-rf="helvetica"]{--rs-font:"Helvetica Neue",Helvetica,Arial,sans-serif}
html[data-rf] main :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,td,th,dt,dd,figcaption,summary,em,strong,.lede,.Badge,a){font-family:var(--rs-font) !important}
html[data-rf] main :is(pre,code,kbd,samp),html[data-rf] main pre *{font-family:var(--font-mono) !important}
html[data-rf] main .mermaid,html[data-rf] main .mermaid *{font-family:inherit}

/* flat tracks put .MarkdownContent (which sets its own font) inside main, so size both */
html[data-rs] main,html[data-rs] main .MarkdownContent{font-size:calc(var(--font-text-lg-size) * var(--rs-scale,1)) !important;line-height:1.6 !important}
html[data-rs] main h1{font-size:calc(var(--font-heading-xl-size) * var(--rs-scale,1)) !important;line-height:1.15 !important}
html[data-rs] main h2{font-size:1.5em !important}
html[data-rs] main h3{font-size:1.25em !important}
html[data-rs] main h4{font-size:1em !important}
html[data-rs] main .lede{font-size:1.1em !important}
html[data-rs] main table{font-size:.875em !important}
html[data-rs] main th,html[data-rs] main td{font-size:inherit !important}
html[data-rs] main .pm-callout{font-size:.9em !important}
html[data-rs] main pre{font-size:.875em !important}

html[data-rm="n"] main{max-width:calc(var(--spacing) * 155) !important}
html[data-rm="w"] main{max-width:calc(var(--spacing) * 280) !important}
@media (max-width:680px){
  html[data-rm="n"] main{padding-left:var(--space-3) !important;padding-right:var(--space-3) !important}
  html[data-rm="w"] main{padding-left:var(--space-8) !important;padding-right:var(--space-8) !important}
}

}
