@font-face {
  font-family: PrismTreeview;
  src: url(data:application/font-woff;base64,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)
    format('woff');
}

body {
  margin: 0;
  padding: 0;
  background-color: var(--color-primary-bg);
}

div#redoc .redoc-wrap {
  color: var(--color-primary-text);
  fill: var(--color-secondary-bg);
  font-family: 'Plus Jakarta Sans', sans-serif;
  background-color: var(--color-primary-bg);

  /* Download Schema button */
  .download-schema-button > div:first-child {
    position: relative;
    top: 2px;
  }

  /* Search input field in left menu */
  & div[role='search'] {
    background-color: var(--color-input-bg);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 6px 10px 4px;

    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;

    &:has(> input:focus) {
      border-color: var(--color-primary);
      box-shadow: 0 0 0 1px var(--color-primary);
    }

    & > i {
      padding: 8px;
      position: absolute;
      right: 40px;
      color: var(--color-primary-text);
      font-size: 24px;
      transform: translateY(-24px);
    }

    & > svg {
      font-size: 18px;
      position: absolute;
      left: 38px;
      transform: translateY(-3px);
    }

    & > input {
      font-size: 14px;
      font-weight: normal;
    }
  }

  /* Left menu */
  & > .menu-content {
    padding: 24px;
    background-color: var(--color-sidebar-menu-hover-bg);

    @media only screen and (min-width: 801px) {
      background-color: transparent;
    }

    /* Logo */
    & > div > a > img {
      padding: 0 64px 40px;

      .dark & {
        filter: invert(1);
      }
    }

    /* Back button */
    & > .back-to-home > a {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background-color: var(--color-primary);
      color: var(--color-primary-contrast-primary-text);
      margin: 0 auto 32px;
      padding: 6px 10px;
      border-radius: 6px;
      text-decoration: none;

      transition-property: all;
      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
      transition-duration: 150ms;

      &:hover {
        background-color: var(--color-primary-hover);
      }

      & > svg {
        width: 14px;
        height: 14px;
        fill: var(--color-primary-contrast-primary-text);
        transform: translateY(1px);
      }
    }

    & > div > ul > li > label,
    & > div > ul > li > ul > li > label {
      margin-top: 8px;
      text-wrap: nowrap;
    }

    & > div > ul > li > ul > li > label {
      font-size: 12px;
    }

    & > div > ul > li > label.active,
    & > div > ul > li > label:hover,
    & > div > ul > li > ul > li > label.active,
    & > div > ul > li > ul > li > label:hover {
      border-radius: 10px;
    }

    & > div > ul > li > ul > li > label > span:first-child {
      margin-right: 16px;
    }

    & > div.scrollbar-container > ul + div {
      display: none;
    }
  }

  /* Middle section */
  & > .api-content {
    color: var(--color-primary-text);

    & > div:nth-child(n + 3)::after {
      border-bottom-width: 1px;
      border-bottom-style: solid;
      border-bottom-color: var(--color-border);
    }

    /* Title and download schema button container */
    & > div:has(> div > div.api-info) {
      @media only screen and (min-width: 1201px) {
        position: absolute;
        top: 40px;
        right: 40%;
      }
    }

    /* Title and download schema button */
    & .api-info {
      @media only screen and (min-width: 1201px) {
        width: auto;
        transform: translateX(100%);
      }

      & > p > a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        background-color: var(--color-primary);
        color: var(--color-primary-contrast-primary-text);
        margin-left: 0;
        padding: 6px 10px;
        border-radius: 6px;
        text-decoration: none;

        transition-property: all;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;

        &:hover {
          background-color: var(--color-primary-hover);
        }

        & > div:first-child {
          width: 14px;
          height: 14px;
          fill: var(--color-white);
          transform: translateY(-2px);
        }
      }
    }

    /* Link icon beside header */
    & > div > div > div > h2 > a::before {
      background-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="512" height="512" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"><path fill="var(--color-primary-text" d="M459.7 233.4l-90.5 90.5c-50 50-131 50-181 0 -7.9-7.8-14-16.7-19.4-25.8l42.1-42.1c2-2 4.5-3.2 6.8-4.5 2.9 9.9 8 19.3 15.8 27.2 25 25 65.6 24.9 90.5 0l90.5-90.5c25-25 25-65.6 0-90.5 -24.9-25-65.5-25-90.5 0l-32.2 32.2c-26.1-10.2-54.2-12.9-81.6-8.9l68.6-68.6c50-50 131-50 181 0C509.6 102.3 509.6 183.4 459.7 233.4zM220.3 382.2l-32.2 32.2c-25 24.9-65.6 24.9-90.5 0 -25-25-25-65.6 0-90.5l90.5-90.5c25-25 65.5-25 90.5 0 7.8 7.8 12.9 17.2 15.8 27.1 2.4-1.4 4.8-2.5 6.8-4.5l42.1-42c-5.4-9.2-11.6-18-19.4-25.8 -50-50-131-50-181 0l-90.5 90.5c-50 50-50 131 0 181 50 50 131 50 181 0l68.6-68.6C274.6 395.1 246.4 392.3 220.3 382.2z"/></svg>');
    }

    & .welcome-title {
      font-size: 2rem;
      font-weight: bold;
      color: var(--color-link-text);
      display: block;
      margin-bottom: 40px;
    }

    & > div > div > div:last-child {
      border-top-left-radius: 8px;
      border-bottom-left-radius: 8px;
    }

    /* Type restriction inline code blocks in the middle section */
    & table > tbody > tr > td:nth-child(2) > div > div > span:nth-child(3) > span {
      color: var(--color-link-text);
      background-color: var(--color-secondary-bg);
    }

    & > div > div > div > h5,
    & > div > div > div > div > h5,
    & > div > div > div > div > div > h5,
    & > div > div > div > div > div > div > h5 {
      color: var(--color-primary-text);
      border-bottom-width: 1px;
      border-bottom-style: solid;
      border-bottom-color: var(--color-border);
    }

    & > div > div > div > h5 > span,
    & > div > div > div > div > div > div > h5 > span {
      color: var(--color-secondary-text);
    }

    & > div > div > div > div > div:has(> span > span) {
      background-color: transparent;
      /*border: 1px solid var(--color-border);*/
    }

    & > div > div > div > div > div > svg {
      fill: var(--color-primary-text);
    }

    & table > tbody > tr:last-child > td > div {
      background-color: transparent;
    }

    & > div > div > div > div > div,
    & table > tbody > tr > td:last-child {
      border-color: var(--color-border);
    }

    & code .token.treeview-part {
      & .entry-line {
        position: relative;
        text-indent: -99em;
        display: inline-block;
        vertical-align: top;
        width: 1.2em;
      }

      & .entry-line:before,
      & .line-h:after {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        width: 50%;
        height: 100%;
      }

      & .line-h:before,
      & .line-v:before {
        border-left-width: 1px;
        border-left-style: solid;
        border-left-color: var(--color-primary-text);
      }

      & .line-v-last:before {
        height: 50%;
        border-left-width: 1px;
        border-left-style: solid;
        border-left-color: var(--color-primary-text);
        border-bottom-width: 1px;
        border-bottom-style: solid;
        border-bottom-color: var(--color-primary-text);
      }

      & .line-h:after {
        height: 50%;
        border-bottom-width: 1px;
        border-bottom-style: solid;
        border-bottom-color: var(--color-primary-text);
      }

      & .entry-name {
        position: relative;
        display: inline-block;
        vertical-align: top;

        &.dotfile {
          opacity: 0.5;
        }

        &:before {
          content: '\\ea01';
          font-family: PrismTreeview, sans-serif;
          font-size: inherit;
          font-style: normal;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          width: 2.5ex;
          display: inline-block;
        }

        &.dir:before {
          content: '\\ea02';
        }

        &.ext-bmp:before,
        &.ext-eps:before,
        &.ext-gif:before,
        &.ext-jpe:before,
        &.ext-jpg:before,
        &.ext-jpeg:before,
        &.ext-png:before,
        &.ext-svg:before,
        &.ext-tiff:before {
          content: '\\ea03';
        }

        &.ext-cfg:before,
        &.ext-conf:before,
        &.ext-config:before,
        &.ext-csv:before,
        &.ext-ini:before,
        &.ext-log:before,
        &.ext-md:before,
        &.ext-nfo:before,
        &.ext-txt:before {
          content: '\\ea06';
        }

        &.ext-asp:before,
        &.ext-aspx:before,
        &.ext-c:before,
        &.ext-cc:before,
        &.ext-cpp:before,
        &.ext-cs:before,
        &.ext-css:before,
        &.ext-h:before,
        &.ext-hh:before,
        &.ext-htm:before,
        &.ext-html:before,
        &.ext-jav:before,
        &.ext-java:before,
        &.ext-js:before,
        &.ext-php:before,
        &.ext-rb:before,
        &.ext-xml:before {
          content: '\\ea07';
        }

        &.ext-7z:before,
        &.ext-bz:before,
        &.ext-bz2:before,
        &.ext-gz:before,
        &.ext-rar:before,
        &.ext-tar:before,
        &.ext-tgz:before,
        &.ext-zip:before {
          content: '\\ea08';
        }

        &.ext-aac:before,
        &.ext-au:before,
        &.ext-cda:before,
        &.ext-flac:before,
        &.ext-mp3:before,
        &.ext-oga:before,
        &.ext-ogg:before,
        &.ext-wav:before,
        &.ext-wma:before {
          content: '\\ea04';
        }

        &.ext-avi:before,
        &.ext-flv:before,
        &.ext-mkv:before,
        &.ext-mov:before,
        &.ext-mp4:before,
        &.ext-mpeg:before,
        &.ext-mpg:before,
        &.ext-ogv:before,
        &.ext-webm:before {
          content: '\\ea05';
        }

        &.ext-pdf:before {
          content: '\\ea09';
        }

        &.ext-xls:before,
        &.ext-xlsx:before {
          content: '\\ea0a';
        }

        &.ext-doc:before,
        &.ext-docm:before,
        &.ext-docx:before {
          content: '\\ea0c';
        }

        &.ext-pps:before,
        &.ext-ppt:before,
        &.ext-pptx:before {
          content: '\\ea0b';
        }
      }
    }

    & code {
      & .token.comment,
      & .token.prolog,
      & .token.doctype,
      & .token.cdata {
        color: #8292a2;
      }

      & .token.punctuation {
        color: var(--color-primary-text);
      }

      & .token.namespace {
        opacity: 0.7;
      }

      & .token.property,
      & .token.tag,
      & .token.constant,
      & .token.symbol,
      & .token.deleted {
        color: var(--color-pink-500);
      }

      & .token.boolean,
      & .token.number {
        color: var(--color-secondary-hover);
      }

      & .token.selector,
      & .token.attr-name,
      & .token.string,
      & .token.char,
      & .token.builtin,
      & .token.inserted {
        color: var(--color-link-text);
      }

      & .token.operator,
      & .token.entity,
      & .token.url,
      & .language-css .token.string,
      & .style .token.string,
      & .token.variable {
        color: var(--color-primary-text);
      }

      & .token.atrule,
      & .token.attr-value,
      & .token.function,
      & .token.class-name {
        color: rgb(202, 138, 4);
      }

      & .token.string + a {
        color: var(--color-teal-500);
      }

      & .token.keyword {
        color: rgb(8, 145, 178);
      }

      & .token.regex,
      & .token.important {
        color: rgb(234, 88, 12);
      }

      & .token.important,
      & .token.bold {
        font-weight: 700;
      }

      & .token.italic {
        font-style: italic;
      }

      & .token.entity {
        cursor: help;
      }

      & button.collapser {
        color: var(--color-primary-text);
      }
    }

    /* Response buttons in the right panel */
    & .react-tabs__tab-list {
      /* 200 */
      & .tab-success {
        border: 0;
        border-radius: 6px;
        color: var(--color-success);
        background-color: color-mix(in srgb, var(--color-success) 20%, transparent);
        outline: none;

        &:hover,
        &.react-tabs__tab--selected {
          background-color: var(--color-success);
          color: var(--color-white);
        }
      }

      /* Errors */
      & .tab-error {
        border: 0;
        border-radius: 6px;
        color: var(--color-danger);
        background-color: color-mix(in srgb, var(--color-danger) 20%, transparent);
        outline: none;

        &:hover,
        &.react-tabs__tab--selected {
          background-color: var(--color-danger);
          color: var(--color-white);
        }
      }

      /* Payload */
      & > li.react-tabs__tab {
        border-radius: 6px;
        background-color: var(--color-primary);
        color: var(--color-primary-contrast-primary-text);
      }

      & > li.react-tabs__tab--selected:focus {
        outline: none;
      }
    }

    /* Response samples in the right panel */
    & .react-tabs__tab-panel {
      border-radius: 10px;
      margin-top: 8px;

      & > div:first-child > div:first-child:has(> span + div) {
        display: flex;
        align-items: baseline;
      }

      & > div:first-child > div:first-child > span:has(+ div) {
        position: relative;
        top: 0;
        left: 0;
        text-transform: uppercase;
        font-weight: normal;
        font-size: 12px;
        color: var(--color-primary-text);

        &::after {
          content: ':';
        }
      }

      & > div:first-child > div:first-child > span + div {
        margin-bottom: 0;
        background-color: transparent;
        color: var(--color-secondary-text);
      }

      /* Copy, expand, collapse buttons */
      & div > div > div > div {
        opacity: 1;

        & > button {
          border-radius: 6px;
          border-width: 1px;
          border-style: solid;
          border-color: var(--color-border);
          background-color: var(--color-default-button-bg);
          color: var(--color-secondary-text);
          padding: 4px 8px;
          margin-right: 8px;
          font-size: 10px;

          transition-property: all;
          transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
          transition-duration: 150ms;

          &:hover {
            background-color: var(--color-default-button-hover-bg);
            color: var(--color-primary-text);
          }

          &:last-child {
            margin-right: 0;
          }
        }
      }
    }

    /* Response buttons in the middle */
    & div > div > div > div > div {
      /* 200 */
      &:nth-child(2) > button {
        border-radius: 8px;
        color: var(--color-success);
        background-color: color-mix(in srgb, var(--color-success) 20%, transparent);
        outline: none;

        & > svg > polygon {
          fill: var(--color-success);
        }

        &[aria-expanded='true'] {
          background-color: var(--color-success);
          color: var(--color-white);

          & > svg > polygon {
            fill: var(--color-white);
          }
        }
      }

      /* Errors */
      &:nth-child(n + 3) > button {
        border-radius: 8px;
        color: var(--color-danger);
        background-color: color-mix(in srgb, var(--color-danger) 20%, transparent);
        outline: none;

        & > svg > polygon {
          fill: var(--color-danger);
        }

        &[aria-expanded='true'] {
          background-color: var(--color-danger);
          color: var(--color-white);

          & > svg > polygon {
            fill: var(--color-white);
          }
        }
      }
    }

    /* Response button in the middle */
    & div > div > div > div > h3 + div > button div:last-child,
    & div > div > div > div > div + div > button div:last-child {
      display: none;
    }

    /* Method button in the right panel with server menu */
    & div > div > div > div:has(> button > span + span) {
      & > button,
      & > button + div {
        box-shadow: none;
      }

      & > button {
        border-radius: 10px;
        border-width: 1px;
        border-style: solid;
        border-color: var(--color-border);
        background-color: var(--color-input-bg);
        padding-left: 12px;
        padding-right: 40px;

        & > span:first-child {
          border-radius: 6px;
          font-weight: bold;
        }

        & > span:nth-child(2) {
          transform: translateY(1px);
        }

        & > svg > polygon {
          fill: var(--color-primary-text);
        }
      }

      & > button:has(+ div[aria-hidden='false']) {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        border: 1px solid var(--color-border);
        border-bottom-color: var(--color-input-bg);
      }

      /* Server menu */
      & > button + div[aria-hidden='false'] {
        border-bottom-left-radius: 10px;
        border-bottom-right-radius: 10px;
        border-width: 1px;
        border-style: solid;
        border-color: var(--color-border);
        border-top: 0;
        box-sizing: border-box;
        background-color: var(--color-input-bg);

        /*  */
        & > div > div:last-child > div {
          background-color: var(--color-input-hover-bg);
          border-width: 1px;
          border-style: solid;
          border-color: var(--color-border);
          border-radius: 6px;
          padding: 6px 10px;
          margin-top: 8px;
          color: var(--color-link-text);

          & > span:first-child {
            border-radius: 6px;
          }
        }
      }
    }
  }
}

code[class*='language-'],
pre[class*='language-'] {
  color: var(--color-primary-text);
  background: none;
  text-shadow: 0 1px rgba(0, 0, 0, 0.3);
  font-family:
    Consolas,
    Monaco,
    Andale Mono,
    Ubuntu Mono,
    monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  /*noinspection CssUnknownProperty*/
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

pre[class*='language-'] {
  padding: 1em;
  margin: 0.5em 0;
  overflow: auto;
  border-radius: 0.3em;
}

:not(pre) > code[class*='language-'],
pre[class*='language-'] {
  background: var(--color-primary-text);
}

:not(pre) > code[class*='language-'] {
  padding: 0.1em;
  border-radius: 0.3em;
  white-space: normal;
}
