:root {
  --legal-bg: #080a0d;
  --legal-surface: #0d1015;
  --legal-surface-soft: #12161d;
  --legal-ink: #f3f5f7;
  --legal-body: #b7bec9;
  --legal-muted: #7f8997;
  --legal-line: #252b34;
  --legal-line-strong: #353d48;
  --legal-accent: #9fb7ff;
  --legal-accent-soft: rgba(122, 153, 255, 0.11);
  --header-height: 58px;
  --primary-nav-height: 48px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--legal-bg); }
body {
  margin: 0;
  background: var(--legal-bg);
  color: var(--legal-ink);
  font: 15px/1.78 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", "PingFang SC", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button { font: inherit; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  top: -80px;
  left: 18px;
  z-index: 100;
  padding: 9px 13px;
  border-radius: 8px;
  background: #fff;
  color: #080a0d;
}
.skip-link:focus { top: 12px; }

.legal-global-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr) auto;
  align-items: center;
  min-height: var(--header-height);
  padding: 0 28px;
  border-bottom: 1px solid var(--legal-line);
  background: rgba(8, 10, 13, 0.94);
  backdrop-filter: blur(18px);
}
.legal-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  color: #fff;
  text-decoration: none;
}
.legal-brand span {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border: 1px solid #556174;
  border-radius: 9px;
  background: linear-gradient(145deg, #1a2331, #0e1219);
  color: #dce5ff;
  font-size: 14px;
  font-weight: 760;
}
.legal-brand strong { font-size: 16px; letter-spacing: -0.01em; }
.legal-global-links { display: flex; justify-content: center; gap: 30px; }
.legal-global-links a,
.legal-primary-nav a {
  color: #98a1ae;
  font-size: 13px;
  text-decoration: none;
  transition: color 150ms ease;
}
.legal-global-links a:hover,
.legal-global-links a:focus-visible,
.legal-primary-nav a:hover,
.legal-primary-nav a:focus-visible,
.legal-primary-nav a.active { color: #fff; }

.language-switch {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--legal-line-strong);
  border-radius: 9px;
  background: #0c0f14;
}
.language-switch button {
  border: 0;
  border-radius: 6px;
  padding: 6px 10px;
  background: transparent;
  color: #929baa;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
}
.language-switch button:hover { color: #fff; }
.language-switch button[aria-pressed="true"] {
  background: #f1f4f8;
  color: #0a0c10;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}

.legal-primary-nav {
  position: sticky;
  top: var(--header-height);
  z-index: 25;
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: var(--primary-nav-height);
  padding: 0 28px 0 278px;
  border-bottom: 1px solid var(--legal-line);
  background: rgba(8, 10, 13, 0.95);
  backdrop-filter: blur(18px);
}

.legal-shell {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 800px) minmax(170px, 210px);
  justify-content: center;
  gap: 46px;
  width: 100%;
  max-width: 1420px;
  margin: 0 auto;
  padding: 0 28px 90px;
}
.policy-sidebar,
.policy-toc {
  position: sticky;
  top: calc(var(--header-height) + var(--primary-nav-height) + 26px);
  align-self: start;
  max-height: calc(100vh - var(--header-height) - var(--primary-nav-height) - 52px);
  overflow: auto;
  scrollbar-width: thin;
}
.policy-sidebar { padding: 46px 8px 30px 0; }
.sidebar-group > p,
.policy-toc > p {
  margin: 0 0 12px;
  color: #e8ebef;
  font-size: 12px;
  font-weight: 680;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.sidebar-group nav,
.policy-toc nav { display: grid; }
.sidebar-group nav a {
  margin-left: -12px;
  padding: 8px 12px;
  border-left: 2px solid transparent;
  border-radius: 0 7px 7px 0;
  color: #89929f;
  font-size: 14px;
  line-height: 1.45;
  text-decoration: none;
}
.sidebar-group nav a:hover,
.sidebar-group nav a:focus-visible { color: #dfe4eb; }
.sidebar-group nav a.active {
  border-left-color: var(--legal-accent);
  background: var(--legal-accent-soft);
  color: #dce4ff;
}
.sidebar-help {
  display: grid;
  gap: 3px;
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid var(--legal-line);
  color: var(--legal-muted);
  font-size: 12px;
}
.sidebar-help a { color: #c3cbe1; text-decoration: none; }
.sidebar-help a:hover { color: #fff; }

.policy-article {
  min-width: 0;
  padding-top: 43px;
}
.policy-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 36px;
  color: #757f8e;
  font-size: 12px;
}
.policy-breadcrumb a { color: #a9b1be; text-decoration: none; }
.policy-breadcrumb a:hover { color: #fff; }
.policy-kicker {
  margin: 0 0 13px;
  color: var(--legal-accent);
  font-size: 12px;
  font-weight: 670;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}
.policy-document-header h1 {
  max-width: 760px;
  margin: 0;
  color: #f6f7f9;
  font-size: clamp(36px, 4.2vw, 54px);
  font-weight: 680;
  line-height: 1.08;
  letter-spacing: -0.045em;
}
.document-language-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  color: #87919f;
  font-size: 12px;
}
.language-switch-document button { padding: 5px 9px; }
.policy-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 34px 0 0;
  padding: 19px 0;
  border-top: 1px solid var(--legal-line);
  border-bottom: 1px solid var(--legal-line);
}
.policy-meta div { min-width: 110px; }
.policy-meta dt {
  color: #707a88;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.policy-meta dd { margin: 2px 0 0; color: #d5dae1; font-size: 13px; }
.policy-actions { display: flex; gap: 8px; margin-top: 14px; }
.policy-actions button {
  padding: 7px 11px;
  border: 1px solid var(--legal-line-strong);
  border-radius: 7px;
  background: #0d1117;
  color: #abb4c1;
  font-size: 12px;
  cursor: pointer;
}
.policy-actions button:hover { border-color: #586476; color: #fff; }
.policy-notice {
  margin-top: 30px;
  padding: 17px 19px;
  border-left: 3px solid #718ce5;
  background: rgba(113, 140, 229, 0.08);
}
.policy-notice strong { color: #d9e1ff; font-size: 13px; }
.policy-notice p { margin: 4px 0 0; color: #9da7b7; font-size: 13px; }

.policy-content { margin-top: 38px; }
.policy-lead {
  margin: 0 0 46px;
  color: #d1d6de;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: -0.01em;
}
.language-document section {
  scroll-margin-top: calc(var(--header-height) + var(--primary-nav-height) + 26px);
  margin: 0;
  padding: 36px 0 38px;
  border-top: 1px solid var(--legal-line);
}
.language-document section:first-of-type { border-top-color: var(--legal-line-strong); }
.language-document h2 {
  margin: 0 0 18px;
  color: #eef1f4;
  font-size: 23px;
  font-weight: 630;
  line-height: 1.35;
  letter-spacing: -0.022em;
}
.language-document p { margin: 12px 0; color: var(--legal-body); }
.language-document ul { margin: 14px 0; padding-left: 22px; color: var(--legal-body); }
.language-document li { padding-left: 3px; }
.language-document li + li { margin-top: 9px; }
.language-document strong { color: #e1e5ea; font-weight: 620; }
.language-document a { color: #bdc9ef; text-underline-offset: 3px; }

.policy-toc { padding-top: 48px; }
.policy-toc nav { border-left: 1px solid var(--legal-line); }
.policy-toc nav a {
  padding: 5px 0 5px 13px;
  color: #737d8b;
  font-size: 11px;
  line-height: 1.45;
  text-decoration: none;
}
.policy-toc nav a:hover,
.policy-toc nav a:focus-visible,
.policy-toc nav a.active { color: #e2e7ee; }
.policy-toc nav a.active { border-left: 1px solid #c8d3f7; margin-left: -1px; }
.document-footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--legal-line-strong);
  color: #697381;
  font-size: 12px;
}
.document-footer p { margin: 0; }
.document-footer a { color: #aab4c2; text-decoration: none; }

.copy-toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 60;
  padding: 10px 14px;
  border: 1px solid #394352;
  border-radius: 8px;
  background: #171c24;
  color: #f0f3f7;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.4);
  font-size: 13px;
}
.mobile-policy-tools { display: none; }

@media (max-width: 1080px) {
  .legal-shell { grid-template-columns: 220px minmax(0, 760px); gap: 36px; }
  .policy-toc { display: none; }
}

@media (max-width: 760px) {
  :root { --header-height: 56px; --primary-nav-height: 44px; }
  .legal-global-header { grid-template-columns: 1fr auto; padding: 0 16px; }
  .legal-global-links { display: none; }
  .language-switch-header button { padding: 5px 7px; font-size: 11px; }
  .legal-primary-nav { gap: 22px; overflow-x: auto; padding: 0 16px; }
  .legal-primary-nav a { white-space: nowrap; }
  .mobile-policy-tools {
    position: sticky;
    top: calc(var(--header-height) + var(--primary-nav-height));
    z-index: 23;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid var(--legal-line);
    background: rgba(8, 10, 13, 0.97);
  }
  .mobile-policy-tools button {
    padding: 10px 12px;
    border: 0;
    border-right: 1px solid var(--legal-line);
    background: transparent;
    color: #a6afbb;
    font-size: 12px;
    cursor: pointer;
  }
  .mobile-policy-tools button[aria-expanded="true"] { background: #11161d; color: #fff; }
  .legal-shell { display: block; padding: 0 18px 64px; }
  .policy-sidebar,
  .policy-toc {
    position: sticky;
    top: calc(var(--header-height) + var(--primary-nav-height) + 40px);
    z-index: 22;
    display: none;
    max-height: min(62vh, 470px);
    margin: 0 -18px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--legal-line-strong);
    background: #0c0f14;
  }
  .policy-sidebar[data-open="true"],
  .policy-toc[data-open="true"] { display: block; }
  .policy-toc nav { grid-template-columns: 1fr 1fr; column-gap: 12px; }
  .sidebar-help { display: none; }
  .policy-article { padding-top: 28px; }
  .policy-breadcrumb { margin-bottom: 24px; }
  .policy-document-header h1 { font-size: clamp(33px, 10.2vw, 43px); }
  .document-language-row { align-items: flex-start; flex-direction: column; gap: 7px; }
  .policy-meta { gap: 14px; }
  .policy-meta div { min-width: calc(50% - 10px); }
  .policy-lead { margin-bottom: 34px; font-size: 16px; }
  .language-document section { padding: 30px 0 32px; scroll-margin-top: 156px; }
  .language-document h2 { font-size: 20px; }
}

@media (max-width: 420px) {
  .legal-brand strong { font-size: 14px; }
  .language-switch-header button { padding: 5px 6px; font-size: 10px; }
  .policy-toc nav { grid-template-columns: 1fr; }
  .policy-actions { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@media print {
  :root { color-scheme: light; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .legal-global-header,
  .legal-primary-nav,
  .mobile-policy-tools,
  .policy-sidebar,
  .policy-toc,
  .policy-actions,
  .document-language-row,
  .skip-link,
  .copy-toast { display: none !important; }
  .legal-shell { display: block; max-width: none; padding: 0; }
  .policy-article { padding: 0; }
  .policy-breadcrumb { display: none; }
  .policy-document-header h1,
  .language-document h2,
  .language-document strong { color: #000; }
  .policy-kicker,
  .policy-meta dt,
  .policy-meta dd,
  .policy-notice p,
  .policy-lead,
  .language-document p,
  .language-document ul { color: #222; }
  .policy-notice { border-color: #555; background: #f5f5f5; }
  .language-document section { break-inside: avoid; padding: 20px 0; border-color: #bbb; }
  .policy-meta { border-color: #bbb; }
  .language-document[hidden] { display: none !important; }
}
