/* Must precede all other rules. Unlayered, so Pagefind overrides beat pagefind-component-ui.css */
@import url("./pagefind.css");

@layer root {
  :root {
    --app-primary-color-h: 203;
    --app-primary-color-s: 22%;
    --app-primary-color-l: 19%;
    --app-primary-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), var(--app-primary-color-l));

    --app-secondary-color-h: 204;
    --app-secondary-color-s: 28%;
    --app-secondary-color-l: 27%;
    --app-secondary-color: hsl(
      var(--app-secondary-color-h),
      var(--app-secondary-color-s),
      var(--app-secondary-color-l)
    );

    --app-green-color-h: 167;
    --app-green-color-s: 74%;
    --app-green-color-l: 34%;
    --app-green-color: hsl(var(--app-green-color-h), var(--app-green-color-s), var(--app-green-color-l));

    --app-orange-color-h: 17;
    --app-orange-color-s: 65%;
    --app-orange-color-l: 55%;
    --app-orange-color: hsl(var(--app-orange-color-h), var(--app-orange-color-s), var(--app-orange-color-l));

    --app-yellow-color-h: 38;
    --app-yellow-color-s: 62%;
    --app-yellow-color-l: 51%;
    --app-yellow-color: hsl(var(--app-yellow-color-h), var(--app-yellow-color-s), var(--app-yellow-color-l));

    /* blue, purple, red: from ZUI (--zui-blue, --zui-purple, --zui-red) */
    --app-blue-color-h: 212;
    --app-blue-color-s: 69%;
    --app-blue-color-l: 49%;
    --app-blue-color: hsl(var(--app-blue-color-h), var(--app-blue-color-s), var(--app-blue-color-l));

    --app-purple-color-h: 263;
    --app-purple-color-s: 42%;
    --app-purple-color-l: 49%;
    --app-purple-color: hsl(var(--app-purple-color-h), var(--app-purple-color-s), var(--app-purple-color-l));

    --app-red-color-h: 12;
    --app-red-color-s: 85%;
    --app-red-color-l: 46%;
    --app-red-color: hsl(var(--app-red-color-h), var(--app-red-color-s), var(--app-red-color-l));

    --app-gray-color-h: 0;
    --app-gray-color-s: 0%;
    --app-gray-color-l: 60%;
    --app-gray-color: hsl(var(--app-gray-color-h), var(--app-gray-color-s), var(--app-gray-color-l));

    --app-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji,
      Segoe UI Emoji, Segoe UI Symbol;

    font-family: var(--app-font-family);
    font-size: 1rem; /* 16 */
    accent-color: var(--app-primary-color);
  }

  html {
    box-sizing: border-box;
    scroll-behavior: smooth;
  }

  *,
  *:before,
  *:after {
    box-sizing: inherit;
  }

  body {
    font-size: 1rem; /* 16 */
    all: unset;
    line-height: 1.8;
  }

  /* Link text colors: the brand green at lightnesses that meet WCAG AA (4.5:1) on the page background
   * and on <docs-note> tints. Use these for green text; keep --app-green-color for fills and borders. */
  @media (prefers-color-scheme: light) {
    :root {
      --app-background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 94%);
      --app-link-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 23%);
      --app-link-hover-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 18%);
      --app-link-active-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 14%);
    }
    body {
      background-color: var(--app-background-color);
      color: var(--app-primary-color);
    }
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --app-background-color: var(--app-primary-color);
      --app-link-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 50%);
      --app-link-hover-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 60%);
      --app-link-active-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 68%);
    }

    body {
      background-color: var(--app-background-color);
      color: white;
    }
  }

  h1:first-of-type {
    margin-top: 0;
  }

  h2 {
    padding-top: 3rem; /* 48 / 16 */
    margin-top: 3rem; /* 48 / 16 */
    border-top-width: 0.0625rem; /* 1 / 16 */
    border-top-style: solid;
  }

  @media (prefers-color-scheme: light) {
    h2 {
      border-top-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 69%);
    }
  }

  @media (prefers-color-scheme: dark) {
    h2 {
      border-top-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 29%);
    }
  }

  h3 {
    margin-top: 3rem; /* 48 / 16 */
  }

  h4 {
    margin-top: 2rem; /* 32 / 16 */
  }

  rapi-doc {
    width: auto;
    height: auto;
    --bg: transparent;
  }

  @media (prefers-color-scheme: light) {
    rapi-doc {
      --fg: var(--app-primary-color);
    }
  }

  @media (prefers-color-scheme: dark) {
    rapi-doc {
      --fg: white;
    }
  }

  .rapidoc-metadata {
    display: flex;
    justify-content: space-between;
  }

  img {
    max-width: 100%;
  }

  p p,
  ol p,
  ol h1,
  ol h2,
  ol h3,
  ol h4,
  ol h5,
  ol h6 ul p,
  ul h1,
  ul h2,
  ul h3,
  ul h4,
  ul h5,
  ul h6 {
    padding-left: 0;
    padding-right: 0;
  }

  ol,
  ul,
  ol ol,
  ol ul,
  ul ul,
  ul ol {
    padding-left: 2ch;
  }

  a {
    color: var(--app-link-color);
    text-decoration: underline;
    transition: color 100ms ease-in-out;
  }

  a:hover {
    color: var(--app-link-hover-color);
  }

  a:focus {
    outline: 0.0625rem solid var(--app-link-color); /* 1 / 16 */
    outline-offset: 0.25rem; /* 4 / 16 */
    text-decoration: none;
  }

  a:active {
    outline: none;
    color: var(--app-link-active-color);
    text-decoration: underline;
  }

  a.external-link {
    svg {
      width: 1.2rem;
      height: 1.2rem;
      margin-left: 0.25rem; /* 4 / 16 */
      vertical-align: middle;
      fill: currentColor;
    }
  }

  table {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    margin-left: auto;
    margin-right: auto;
  }

  thead {
    border-bottom-width: 0.0625rem; /* 1 / 16 */
    border-bottom-style: solid;
  }

  @media (prefers-color-scheme: light) {
    thead {
      border-bottom-color: var(--apps-gray-color);
    }
  }
  @media (prefers-color-scheme: dark) {
    thead {
      border-bottom-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 39%);
    }
  }

  th {
    text-align: left;
    padding: 0.53125rem 1.25rem; /* 8.5 / 16, 20 / 16 */
  }

  tr {
    border-bottom-width: 0.0625rem; /* 1 / 16 */
    border-bottom-style: solid;
  }

  @media (prefers-color-scheme: light) {
    tr {
      border-bottom-color: hsla(var(--docs-gray-color-h), var(--docs-gray-color-s), var(--docs-gray-color-l), 0.3);
    }
  }
  @media (prefers-color-scheme: dark) {
    tr {
      border-bottom-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 39%);
    }
  }

  tr:last-child {
    border-bottom: 0;
  }

  td {
    vertical-align: top;
    padding: 0.8125rem 1.25rem; /* 13 / 16, 20 / 16 */
  }

  th:first-child,
  td:first-child {
    padding-left: 0;
  }

  th:last-child,
  td:last-child {
    padding-right: 0;
  }

  @media (min-width: 60em) {
    #search-container {
      width: 100%;
      max-width: 25rem; /* 400 / 16 */
    }
  }

  .search-and-login .user {
    border-radius: 50%;
    width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #3a4e5a;
    height: 44px;
  }

  .search-and-login .user .initials {
    letter-spacing: 1px;
    line-height: 1;
  }

  details {
    overflow: hidden;
  }

  summary {
    padding: 1.25rem; /* 20 / 16 */
    display: block;
    background: var(--app-background-color);
    border-bottom-width: 0.0625rem; /* 1 / 16 */
    border-bottom-style: solid;
    padding-left: 2.5rem; /* 40 / 16 */
    position: relative;
    cursor: pointer;
    font-weight: 600;
    transition: background-color 100ms ease-in-out;
  }

  @media (prefers-color-scheme: light) {
    summary {
      border-bottom-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 79%);
    }
  }

  @media (prefers-color-scheme: dark) {
    summary {
      border-bottom-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 39%);
    }
  }

  summary::before {
    content: "";
    border-width: 0.4rem; /* 6 / 16 */
    border-style: solid;
    position: absolute;
    top: calc(50% - 0.4rem); /* 6 / 16 */
    left: 1.25rem; /* 20 / 16 */
    transform: rotate(0);
    transform-origin: 0.2rem 50%; /* 3 / 16 */
    transition: 0.25s transform ease;
  }

  @media (prefers-color-scheme: light) {
    summary::before {
      border-color: transparent transparent transparent var(--app-primary-color);
    }

    summary:hover {
      background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 89%);
    }
  }

  @media (prefers-color-scheme: dark) {
    summary::before {
      border-color: transparent transparent transparent white;
    }

    summary:hover {
      background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 29%);
    }
  }

  /* THE MAGIC 🧙‍♀️ */
  details[open] > summary::before {
    transform: rotate(90deg);
  }

  details[open] > summary {
    border-bottom-color: transparent;
  }

  details summary::marker,
  details summary::-webkit-details-marker {
    display: none;
  }

  details > p {
    padding: 0 1rem;
  }
}

@layer root;

/* Skinny scrollbar
 * Plain-CSS port of ZUI's %skinny-scrollbar placeholder (zui-sass-scripts/skinny-scrollbar.scss),
 * themed with the site's primary hue to match the <docs-app> nav scrollbars. Apply with the
 * .skinny-scrollbar class (see pagefind.css for applying it to third-party elements). */

:root {
  --skinny-scrollbar-thumb: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 79%);
  --skinny-scrollbar-thumb-hover: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 69%);
  --skinny-scrollbar-thumb-active: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 59%);
}

@media (prefers-color-scheme: dark) {
  :root {
    --skinny-scrollbar-thumb: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 29%);
    --skinny-scrollbar-thumb-hover: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 39%);
    --skinny-scrollbar-thumb-active: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 49%);
  }
}

.skinny-scrollbar {
  scrollbar-color: var(--skinny-scrollbar-thumb) transparent;
  scrollbar-width: thin;
}

/* Fallback for browsers without scrollbar-width/scrollbar-color (ignored by those that support them) */
.skinny-scrollbar::-webkit-scrollbar {
  width: 7px;
  height: 7px;
}

.skinny-scrollbar::-webkit-scrollbar-track {
  background-color: transparent;
  border-radius: 7px;
}

.skinny-scrollbar::-webkit-scrollbar-thumb {
  background-color: var(--skinny-scrollbar-thumb);
  border-radius: 7px;
}

.skinny-scrollbar::-webkit-scrollbar-thumb:hover {
  background-color: var(--skinny-scrollbar-thumb-hover);
}

.skinny-scrollbar::-webkit-scrollbar-thumb:active {
  background-color: var(--skinny-scrollbar-thumb-active);
}

.underline {
  text-decoration: underline;
}

/* Inline code styling */

code {
  padding: 0.3125rem; /* 5 / 16 */
  border-radius: 0.1875rem; /* 3 / 16 */
}

/* Reset when code is contained within a preformmated block */
pre code {
  padding: initial;
  border-radius: initial;
}

@media (prefers-color-scheme: light) {
  code {
    color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 29%);
    background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 79%);
  }
}

@media (prefers-color-scheme: dark) {
  code {
    color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 79%);
    background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 29%);
  }
}

/* Block code styling */

code[class*=language-],
pre[class*=language-] {
  white-space: pre-wrap;
}

@media (prefers-color-scheme: light) {
  code[class*=language-],
  pre[class*=language-] {
    background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 79%);
  }
}

@media (prefers-color-scheme: dark) {
  code[class*=language-],
  pre[class*=language-] {
    background-color: hsl(var(--app-primary-color-h), var(--app-primary-color-s), 14%);
  }
}

pre[class*="language-"] {
  position: relative;
}

pre.mermaid {
  visibility: hidden;
}

pre.mermaid[data-processed="true"] {
  visibility: unset;
}

docs-request:not(:defined) {
  & > :not(:first-child) {
    display: none;
  }
}

pre > button.copy-clipboard {
  position: absolute;
  top: 0.5rem; /* 8 / 16 */
  right: 0.5rem; /* 8 /16 */
  font-family: var(--app-font-family);
  font-size: inherit;
  border: none;
  border-radius: 0.3125rem; /* 5 / 16 */
  padding: 0.3125rem 0.625rem; /* 5 / 16, 10 / 16 */
  cursor: pointer;
}

@media (prefers-color-scheme: light) {
  pre > button.copy-clipboard {
    background:
      linear-gradient(
        90deg,
        hsl(var(--app-green-color-h) var(--app-green-color-s) var(--app-green-color-l) / 80%) 0%,
        hsl(var(--app-green-color-h) var(--app-green-color-s) var(--app-green-color-l) / 80%) 100%),
      linear-gradient(
        90deg, 
        var(--app-background-color) 0%,
        var(--app-background-color) 100%);
  }
}

@media (prefers-color-scheme: dark) {
  pre > button.copy-clipboard {
    background-color: hsl(var(--app-green-color-h), var(--app-green-color-s), 17%);
  }
}

docs-request code {
  background-color: unset;
}

docs-request pre[class*="language-"] {
  padding: 1.5rem; /* 24 / 16 */
  margin: 0;
  border: 0;
  border-radius: 0;
}

docs-request pre[class*="language-"][slot="response"] {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 1rem;
}

docs-request pre[class*="language-"][slot="response"],
docs-request pre[class*="language-"][slot="response"] code[class*="language-"] {
  background-color: unset;
}
