.privacy-dialog {
  position: fixed;
  inset-block: 5vh auto;
  inset-inline: 0;
  inline-size: 575px;
  block-size: 576px;
  max-inline-size: calc(100vw - 32px);
  max-block-size: 90vh;
  max-block-size: 90dvh;
  margin-block: 0;
  margin-inline: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 3px;
  color: #696969;
  background: #fff;
  box-shadow: 0 0 18px rgb(0 0 0 / 16%);
  font-family: "Noto Sans SC", Helvetica, Arial, sans-serif;
  font-size: 16px;
  text-align: start;
  color-scheme: light;
}

.privacy-dialog[open] {
  display: grid;
  grid-template-rows: 60px minmax(0, 1fr) 75px;
}

.privacy-dialog::backdrop {
  background: rgb(0 0 0 / 50%);
}

.privacy-dialog .privacy-reference-header,
.privacy-dialog .privacy-reference-content,
.privacy-dialog .privacy-reference-actions,
.privacy-dialog .privacy-reference-category,
.privacy-dialog .privacy-reference-summary,
.privacy-dialog .privacy-reference-button,
.privacy-dialog .privacy-reference-switch,
.privacy-dialog .privacy-reference-switch-track {
  box-sizing: border-box;
}

.privacy-dialog .privacy-reference-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  block-size: 60px;
  min-block-size: 0;
  margin: 0;
  padding-block: 10px;
  padding-inline: 30px 0;
  border-block-end: 1px solid #e9e9e9;
  background: #fff;
}

.privacy-dialog .privacy-reference-logo {
  display: block;
  flex: 0 0 auto;
  inline-size: 120px;
  block-size: 40px;
  max-inline-size: none;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

.privacy-dialog .privacy-reference-header .modal-close {
  position: static;
  display: grid;
  flex: 0 0 44px;
  align-self: flex-start;
  place-items: center;
  inline-size: 44px;
  block-size: 44px;
  min-inline-size: 0;
  min-block-size: 0;
  margin: 0;
  padding: 15px;
  border: 0;
  border-radius: 2px;
  color: #555;
  background: transparent;
  cursor: pointer;
}

.privacy-dialog .privacy-reference-header .modal-close .icon {
  inline-size: 12px;
  block-size: 12px;
  stroke-width: 2.8;
}

.privacy-dialog .privacy-reference-header .modal-close:hover {
  background: #f4f4f4;
}

.privacy-dialog .privacy-reference-content {
  align-self: start;
  min-inline-size: 0;
  min-block-size: 0;
  block-size: 405px;
  max-block-size: calc(100% - 1px);
  margin-block: 1px 0;
  margin-inline: 30px 3px;
  padding-block: 0;
  padding-inline: 0 30px;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-width: auto;
  scrollbar-color: auto;
  -webkit-overflow-scrolling: touch;
}

.privacy-dialog .privacy-reference-content::-webkit-scrollbar {
  inline-size: 11px;
  width: 11px;
}

.privacy-dialog .privacy-reference-content::-webkit-scrollbar-track {
  background: transparent;
}

.privacy-dialog .privacy-reference-content::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: #d8d8d8;
}

.privacy-dialog .privacy-reference-title {
  margin: 10px 0;
  padding: 0;
  color: #696969;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
}

.privacy-dialog .privacy-reference-description,
.privacy-dialog .privacy-reference-category-description p {
  padding: 0;
  color: #696969;
  font-size: 12.992px;
  font-weight: 400;
  line-height: 19.488px;
  overflow-wrap: anywhere;
}

.privacy-dialog .privacy-reference-description {
  margin: 0 0 25px;
}

.privacy-dialog .privacy-reference-description a {
  color: #656565;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 1px;
}

.privacy-dialog .privacy-reference-description .privacy-reference-policy {
  margin-inline-start: 5px;
}

.privacy-dialog .privacy-reference-description .privacy-reference-more {
  margin: 0;
  color: #3860be;
}

.privacy-dialog .privacy-reference-button {
  display: inline-block;
  min-inline-size: 0;
  min-block-size: 45px;
  padding: 12px 30px;
  border: 1px solid #0e72ed;
  border-radius: 3px;
  color: #fff;
  background: #0e72ed;
  font-family: inherit;
  font-weight: 900;
  line-height: 19px;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}

.privacy-dialog .privacy-reference-button:hover {
  border-color: #0866d8;
  background: #0866d8;
}

.privacy-dialog .privacy-reference-accept {
  max-inline-size: 100%;
  margin-block: 0 25px;
  margin-inline: 0 10px;
  font-size: 14.4px;
  letter-spacing: 2.1px;
  text-transform: uppercase;
}

.privacy-dialog .privacy-reference-content[data-reference-language="zh-CN"] .privacy-reference-accept {
  inline-size: 209.125px;
}

.privacy-dialog .privacy-reference-categories {
  margin: 10px 0 0;
  padding: 0 0 1px;
}

.privacy-dialog .privacy-reference-category-title {
  margin: 0;
  padding: 0 0 10px;
  color: #696969;
  font-size: 16px;
  font-weight: 700;
  line-height: 20.8px;
}

.privacy-dialog .privacy-reference-category {
  position: relative;
  margin: 0;
  border: 1px solid #d8d8d8;
  border-block-start: 0;
  border-radius: 0;
  color: #696969;
  background: #fff;
}

.privacy-dialog .privacy-reference-category:first-of-type {
  margin-block-start: 10px;
  border-block-start: 1px solid #d8d8d8;
  border-start-start-radius: 2px;
  border-start-end-radius: 2px;
}

.privacy-dialog .privacy-reference-category:last-of-type {
  border-block-end: 1px solid #d8d8d8;
  border-end-start-radius: 2px;
  border-end-end-radius: 2px;
}

.privacy-dialog .privacy-reference-details {
  margin: 0;
  padding: 0;
  border: 0;
}

.privacy-dialog .privacy-reference-summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  min-block-size: 51.15625px;
  margin: 0;
  padding-block: 11.5px;
  padding-inline: 20px 80px;
  list-style: none;
  cursor: pointer;
}

.privacy-dialog .privacy-reference-summary::-webkit-details-marker,
.privacy-dialog .privacy-reference-summary::marker {
  display: none;
  content: "";
}

.privacy-dialog .privacy-reference-summary::before,
.privacy-dialog .privacy-reference-summary::after {
  display: none;
  content: none;
}

.privacy-dialog .privacy-reference-plus {
  position: relative;
  display: block;
  flex: 0 0 20px;
  inline-size: 20px;
  block-size: 20px;
  color: #536974;
}

.privacy-dialog .privacy-reference-plus::before,
.privacy-dialog .privacy-reference-plus::after {
  position: absolute;
  inset-block-start: 9px;
  inset-inline-start: 5px;
  inline-size: 10px;
  block-size: 2px;
  background: currentColor;
  content: "";
}

.privacy-dialog .privacy-reference-plus::after {
  transform: rotate(90deg);
}

.privacy-dialog .privacy-reference-details[open] .privacy-reference-plus::after {
  display: none;
}

.privacy-dialog .privacy-reference-category-label {
  flex: 1 1 auto;
  min-inline-size: 0;
  color: #696969;
  font-size: 14px;
  font-weight: 600;
  line-height: 25px;
  overflow-wrap: anywhere;
}

.privacy-dialog .privacy-reference-necessary .privacy-reference-summary {
  padding-inline-end: 20px;
}

.privacy-dialog .privacy-reference-necessary .privacy-reference-category-label {
  font-weight: 700;
}

.privacy-dialog .privacy-reference-always {
  flex: 0 1 auto;
  max-inline-size: 48%;
  margin: 0;
  color: #3860be;
  font-size: 13.008px;
  font-weight: 700;
  line-height: 16.9104px;
  text-align: end;
  overflow-wrap: anywhere;
}

.privacy-dialog .privacy-reference-category-description {
  margin: 0;
  padding: 0 20px 15px;
}

.privacy-dialog .privacy-reference-category-description p {
  margin: 0;
}

.privacy-dialog .privacy-reference-switch {
  position: absolute;
  z-index: 1;
  inset-block-start: 13.578125px;
  inset-inline-end: 20px;
  display: block;
  inline-size: 40px;
  block-size: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  cursor: pointer;
}

.privacy-dialog .privacy-reference-switch input {
  position: absolute;
  z-index: 2;
  inset: 0;
  inline-size: 40px;
  block-size: 24px;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}

.privacy-dialog .privacy-reference-switch-track {
  position: absolute;
  inset: 0;
  display: block;
  inline-size: 40px;
  block-size: 24px;
  border: 1px solid #ddd;
  border-radius: 20px;
  background: #f2f1f1;
  pointer-events: none;
}

.privacy-dialog .privacy-reference-switch-track::before {
  position: absolute;
  inset-block-start: 1px;
  inset-inline-start: 1px;
  inline-size: 20px;
  block-size: 20px;
  border-radius: 50%;
  background: #7d7d7d;
  box-shadow: 0 1px 2px rgb(0 0 0 / 10%);
  content: "";
}

.privacy-dialog .privacy-reference-switch input:checked + .privacy-reference-switch-track {
  border-color: #0e72ed;
  background: #0e72ed;
}

.privacy-dialog .privacy-reference-switch input:checked + .privacy-reference-switch-track::before {
  inset-inline-start: 17px;
  background: #fff;
}

.privacy-dialog .privacy-reference-switch input:focus-visible + .privacy-reference-switch-track,
.privacy-dialog .privacy-reference-summary:focus-visible,
.privacy-dialog .privacy-reference-button:focus-visible,
.privacy-dialog .privacy-reference-header .modal-close:focus-visible,
.privacy-dialog .privacy-reference-description a:focus-visible {
  outline: 2px solid #285ec7;
  outline-offset: 3px;
}

.privacy-dialog .privacy-reference-actions {
  position: sticky;
  z-index: 3;
  inset-block-end: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  block-size: 75px;
  min-block-size: 0;
  margin: 0;
  padding: 0;
  border-block-start: 1px solid #d8d8d8;
  background: #fff;
}

.privacy-dialog .privacy-reference-save {
  max-inline-size: calc(100% - 40px);
  margin-block: 19px 10px;
  margin-inline: 0 20px;
  font-size: 12px;
  letter-spacing: 2px;
}

.privacy-dialog .privacy-reference-actions[data-reference-language="zh-CN"] .privacy-reference-save {
  inline-size: 148.40625px;
}

@media (max-width: 767px) {
  .privacy-dialog {
    inset: 0;
    inline-size: 100vw;
    block-size: 100vh;
    block-size: 100dvh;
    max-inline-size: none;
    max-block-size: 100vh;
    max-block-size: 100dvh;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .privacy-dialog[open] {
    grid-template-rows: 60px minmax(0, 1fr) 81px;
  }

  .privacy-dialog .privacy-reference-content {
    block-size: calc(100% - 31px);
    max-block-size: none;
    margin-inline: 10px 3px;
    padding-inline: 0 10px;
  }

  .privacy-dialog .privacy-reference-accept,
  .privacy-dialog .privacy-reference-content[data-reference-language="zh-CN"] .privacy-reference-accept {
    inline-size: 100%;
    margin-inline: 0;
  }

  .privacy-dialog .privacy-reference-actions {
    block-size: 81px;
  }

  .privacy-dialog .privacy-reference-save,
  .privacy-dialog .privacy-reference-actions[data-reference-language="zh-CN"] .privacy-reference-save {
    inline-size: 100%;
    max-inline-size: none;
    margin-block: 19px 16px;
    margin-inline: 0;
  }
}
