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

html { background: var(--bg-deep); }

body {
  min-width: 0;
  max-width: none;
  min-height: 100svh;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 78% 10%, rgba(94, 140, 122, 0.065), transparent 34rem),
    linear-gradient(160deg, var(--bg) 0%, var(--bg-deep) 78%);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--type-body);
  line-height: var(--line-body);
}

a { color: inherit; text-decoration: none; }

.legal-header {
  position: fixed;
  z-index: 20;
  inset: 0 0 auto;
  width: 100%;
  height: var(--header-height);
  margin: 0;
  padding-inline: var(--page-gutter);
  background: linear-gradient(to bottom, rgba(6, 17, 17, 0.88), rgba(6, 17, 17, 0.42) 72%, transparent);
  text-align: left;
}

.legal-brand {
  display: inline-flex;
  height: 100%;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.78rem;
  font-weight: 560;
  letter-spacing: 0.08em;
  transition: color var(--duration-fast) var(--ease-calm);
}

.legal-brand:link,
.legal-brand:visited { color: rgba(244, 240, 232, 0.68); text-decoration: none; }
.legal-brand:hover { color: var(--text); text-decoration: none; }
.legal-brand img { width: 2rem; height: 2rem; object-fit: contain; opacity: 1; filter: none; }

.legal-main {
  width: 100%;
  min-height: 100svh;
  padding: calc(var(--header-height) + clamp(4rem, 10vh, 6.5rem)) var(--page-gutter) clamp(5rem, 11vh, 8rem);
}

.legal-panel {
  display: grid;
  width: min(88vw, 78rem);
  margin-inline: auto;
  grid-template-columns: minmax(11.875rem, 13.5rem) minmax(0, 51.25rem);
  column-gap: clamp(4rem, 6vw, 5.5rem);
  align-items: start;
}

.legal-panel--wide,
.legal-panel--permission,
.legal-panel--sdk {
  width: min(92vw, 88rem);
  grid-template-columns: minmax(10rem, 11.875rem) minmax(0, 1fr);
  column-gap: clamp(3.5rem, 5vw, 4.75rem);
}

.legal-sidebar {
  position: sticky;
  top: calc(var(--header-height) + 2.5rem);
  display: grid;
  gap: 0;
  min-width: 0;
}

.legal-eyebrow { margin: 0; color: var(--gold); font-size: var(--type-caption); font-weight: 580; letter-spacing: 0.18em; }
.legal-sidebar__name { margin: 0.8rem 0 0; color: rgba(244, 240, 232, 0.82); font-size: clamp(1rem, 1.35vw, 1.2rem); font-weight: 480; line-height: 1.45; }
.legal-meta { display: grid; margin-top: 1.5rem; gap: 0.35rem; color: rgba(244, 240, 232, 0.42); font-size: var(--type-caption); line-height: 1.65; }

.legal-toc { display: grid; margin-top: clamp(2rem, 4vh, 3rem); gap: 0.2rem; }
.legal-toc a { display: block; padding: 0.38rem 0; color: rgba(244, 240, 232, 0.4); font-size: var(--type-caption); line-height: 1.5; text-decoration: none; transition: color var(--duration-fast) var(--ease-calm), transform var(--duration-fast) var(--ease-calm); }
.legal-toc a:hover,
.legal-toc a.is-current { color: rgba(214, 189, 132, 0.84); }
.legal-toc a.is-current { transform: translateX(0.25rem); }
.legal-toc-mobile { display: none; }

.legal-article { min-width: 0; }
.legal-article__header { margin-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.legal-article__header h1 { max-width: 50rem; margin: 0; color: var(--text); font-size: clamp(2.3rem, 3.2vw, 3rem); font-weight: 450; letter-spacing: var(--display-letter-spacing); line-height: 1.16; }
.legal-copy { min-width: 0; }

.legal-document { width: 100% !important; margin: 0 !important; color: rgba(244, 240, 232, 0.72); font-family: var(--font-sans) !important; }
.legal-document p,
.legal-document li,
.legal-document div,
.legal-document span { color: inherit !important; font-family: inherit !important; font-size: clamp(0.9375rem, 1.05vw, 1.0625rem) !important; line-height: 1.84 !important; }
.legal-document p { margin: 0 0 1.05rem !important; text-align: left !important; text-indent: 0 !important; }
.legal-document .legal-source-title,
.legal-document .legal-source-meta,
.legal-document .legal-empty { display: none !important; }

.legal-document .legal-section-heading,
.legal-document .legal-section-heading * { margin: clamp(2.75rem, 5vw, 4.25rem) 0 1.15rem !important; color: rgba(244, 240, 232, 0.92) !important; font-size: clamp(1.375rem, 1.8vw, 1.625rem) !important; font-weight: 520 !important; letter-spacing: -0.015em; line-height: 1.4 !important; }
.legal-document .legal-subheading,
.legal-document .legal-subheading * { margin: 2rem 0 0.75rem !important; color: rgba(244, 240, 232, 0.86) !important; font-size: clamp(1.125rem, 1.35vw, 1.25rem) !important; font-weight: 520 !important; line-height: 1.5 !important; }
.legal-document strong,
.legal-document b { color: rgba(244, 240, 232, 0.9) !important; font-weight: 560 !important; }

.legal-document a,
.legal-document a:link,
.legal-document a:visited { color: rgba(214, 189, 132, 0.78) !important; text-decoration: underline !important; text-decoration-color: rgba(214, 189, 132, 0.24) !important; text-decoration-thickness: 1px !important; text-underline-offset: 0.18em; overflow-wrap: anywhere; transition: color var(--duration-fast) var(--ease-calm); }
.legal-document a:hover { color: var(--text) !important; }
.legal-document ol,
.legal-document ul { margin: 0 0 1.35rem !important; padding-left: 1.4rem !important; }
.legal-document hr { height: 1px !important; margin: 2.75rem 0 !important; border: 0 !important; background: rgba(244, 240, 232, 0.08) !important; }

.legal-table-scroll { position: relative; width: 100%; margin: 1.75rem 0 2.5rem; overflow-x: auto; scrollbar-color: rgba(214, 189, 132, 0.24) transparent; }
.legal-document table { display: table !important; width: 100% !important; min-width: 54rem; margin: 0 !important; border-collapse: separate !important; border-spacing: 0 !important; color: rgba(244, 240, 232, 0.7) !important; font-family: var(--font-sans) !important; table-layout: auto !important; }
.legal-panel--permission .legal-document td:nth-child(1) { min-width: 18rem; }
.legal-panel--permission .legal-document td:nth-child(2) { min-width: 17rem; }
.legal-panel--permission .legal-document td:nth-child(3) { min-width: 19rem; }
.legal-panel--sdk .legal-document table { min-width: 94rem; }
.legal-panel--sdk .legal-document td:nth-child(1) { min-width: 7.5rem; }
.legal-panel--sdk .legal-document td:nth-child(2),
.legal-panel--sdk .legal-document td:nth-child(3) { min-width: 9rem; }
.legal-panel--sdk .legal-document td:nth-child(4) { min-width: 23rem; }
.legal-panel--sdk .legal-document td:nth-child(5) { min-width: 8rem; }
.legal-panel--sdk .legal-document td:nth-child(6) { min-width: 11rem; }
.legal-panel--sdk .legal-document td:nth-child(7) { min-width: 16rem; }
.legal-document td,
.legal-document th { padding: 0.9rem 1rem !important; border: 0 !important; border-right: 1px solid rgba(244, 240, 232, 0.07) !important; border-bottom: 1px solid rgba(244, 240, 232, 0.08) !important; background: transparent !important; vertical-align: top !important; text-align: left !important; }
.legal-document tr:first-child > td,
.legal-document th { position: sticky; z-index: 2; top: var(--header-height); background: #102323 !important; color: rgba(244, 240, 232, 0.88) !important; }
.legal-document td p,
.legal-document th p,
.legal-document td span,
.legal-document th span { margin: 0 !important; font-size: var(--type-caption) !important; line-height: 1.65 !important; text-align: left !important; word-break: normal !important; }

.legal-actions { display: flex; margin-top: clamp(4rem, 7vw, 6rem); padding-top: 1.5rem; border-top: 1px solid rgba(244, 240, 232, 0.08); }
.legal-action { min-height: 44px; padding: 0; border: 0; background: transparent; color: rgba(244, 240, 232, 0.58); cursor: pointer; font: inherit; font-size: var(--type-caption); letter-spacing: 0.05em; text-decoration: none; transition: color var(--duration-fast) var(--ease-calm); }
.legal-action:hover { color: var(--gold); }

.not-found-main {
  display: grid;
  align-items: center;
  padding-top: calc(var(--header-height) + 2rem);
  padding-bottom: 2rem;
}

.not-found-panel {
  width: min(100%, 35rem);
  margin-right: auto;
  margin-left: clamp(0rem, 12vw, 15rem);
  transform: translateY(-6vh);
}

.not-found-code {
  margin: 0;
  color: rgba(226, 207, 164, 0.92);
  font-family: var(--font-serif);
  font-size: clamp(8.75rem, 20vw, 24rem);
  font-weight: 300;
  letter-spacing: -0.075em;
  line-height: 0.76;
}

.not-found-message {
  max-width: 35rem;
  margin: clamp(1.75rem, 2.2vw, 2.25rem) 0 0;
  color: rgba(244, 240, 232, 0.72);
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 2.15vw, 2.2rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.not-found-actions {
  width: max-content;
  margin-top: clamp(2rem, 2.5vw, 2.5rem);
  padding-top: 0;
  border-top: 0;
}

.not-found-actions .legal-action {
  display: inline-flex;
  min-height: 42px;
  padding: 0 1.1rem;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid rgba(214, 189, 132, 0.24);
  border-radius: 999px;
  color: rgba(214, 189, 132, 0.8);
  letter-spacing: 0.06em;
}

.not-found-actions .legal-action::after {
  content: "→";
  transition: transform var(--duration-fast) var(--ease-calm);
}

.not-found-actions .legal-action:hover {
  border-color: rgba(214, 189, 132, 0.42);
}

.not-found-actions .legal-action:hover::after {
  transform: translateX(0.2rem);
}

@media (max-width: 47.99rem) {
  .legal-main { padding: calc(var(--header-height) + 3.5rem) 1.375rem 4.5rem; }
  .legal-panel,
  .legal-panel--wide,
  .legal-panel--permission,
  .legal-panel--sdk { display: block; width: 100%; }
  .legal-sidebar { position: static; margin-bottom: 2.5rem; }
  .legal-meta { margin-top: 1rem; }
  .legal-toc--desktop { display: none; }
  .legal-toc-mobile { display: block; margin-top: 1.75rem; }
  .legal-toc-mobile summary { color: rgba(214, 189, 132, 0.76); cursor: pointer; font-size: var(--type-caption); letter-spacing: 0.08em; }
  .legal-toc-mobile .legal-toc { margin-top: 0.8rem; padding-left: 0.85rem; border-left: 1px solid rgba(214, 189, 132, 0.16); }
  .legal-article__header { margin-bottom: 2.75rem; }
  .legal-article__header h1 { font-size: clamp(2rem, 10vw, 2.65rem); }
  .legal-document .legal-section-heading,
  .legal-document .legal-section-heading * { margin-top: 2.5rem !important; }
  .legal-table-scroll::before { display: block; margin-bottom: 0.75rem; color: rgba(244, 240, 232, 0.34); content: "横向滑动查看完整表格 →"; font-size: 0.75rem; letter-spacing: 0.04em; }
  .legal-document tr:first-child > td,
  .legal-document th { top: 0; }
  .not-found-main { padding: calc(var(--header-height) + 2rem) 1.375rem 2rem; }
  .not-found-panel { width: 100%; margin-left: 0; transform: translateY(-2vh); }
  .not-found-code { font-size: clamp(8rem, 43vw, 12rem); }
  .not-found-message { margin-top: 1.75rem; font-size: clamp(1.125rem, 5.7vw, 1.5rem); letter-spacing: 0.045em; }
  .not-found-actions { margin-top: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
