@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter+Tight:wght@400;500;600;700&display=swap');

:root {
  --legal-ink: #080d0c;
  --legal-surface: #101817;
  --legal-surface-2: #13201e;
  --legal-line: #263633;
  --legal-line-soft: #1b2926;
  --legal-text: #eff8f5;
  --legal-muted: #9aada8;
  --legal-dim: #657873;
  --legal-mint: #11d0a2;
  --legal-mint-soft: #75eed0;
  --legal-warn: #d7a55b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.legal-page {
  margin: 0;
  background-color: var(--legal-ink);
  background-image:
    linear-gradient(rgba(48, 79, 72, .13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(48, 79, 72, .13) 1px, transparent 1px),
    radial-gradient(700px 360px at 82% 0%, rgba(0, 88, 72, .22), transparent 70%);
  background-size: 42px 42px, 42px 42px, auto;
  color: var(--legal-text);
  font-family: 'Inter Tight', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  letter-spacing: 0;
}

.legal-shell { width: min(1180px, calc(100% - 64px)); margin: 0 auto; }
.legal-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(8, 13, 12, .91);
  border-bottom: 1px solid var(--legal-line);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.legal-nav { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.legal-brand { display: inline-flex; align-items: center; min-width: max-content; }
.legal-brand img { display: block; width: 154px; height: auto; }
.legal-brand-note { margin-left: 14px; padding-left: 14px; border-left: 1px solid var(--legal-line); color: var(--legal-dim); font: 11px/1 'IBM Plex Mono', monospace; letter-spacing: .12em; }
.legal-nav-links { display: flex; align-items: center; gap: 26px; color: var(--legal-muted); font-size: 13px; }
.legal-nav-links a, .legal-nav-actions a { color: inherit; text-decoration: none; transition: color .2s ease; }
.legal-nav-links a:hover, .legal-nav-links a[aria-current='page'], .legal-nav-actions a:hover { color: var(--legal-mint-soft); }
.legal-nav-actions { display: flex; align-items: center; gap: 16px; color: var(--legal-muted); font-size: 13px; }
.legal-register { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 16px; color: #07110f !important; background: var(--legal-mint); font-weight: 600; }

.legal-hero { border-bottom: 1px solid var(--legal-line); }
.legal-hero-inner { padding: 34px 0 42px; }
.legal-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; color: var(--legal-dim); font: 11px/1.4 'IBM Plex Mono', monospace; }
.legal-breadcrumb a { color: var(--legal-muted); text-decoration: none; }
.legal-breadcrumb a:hover { color: var(--legal-mint-soft); }
.legal-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; color: var(--legal-mint-soft); font: 11px/1.4 'IBM Plex Mono', monospace; letter-spacing: .16em; text-transform: uppercase; }
.legal-kicker::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--legal-mint); box-shadow: 0 0 0 5px rgba(17, 208, 162, .11); }
.legal-hero h1 { max-width: 760px; margin: 0; color: var(--legal-text); font-size: 64px; font-weight: 600; line-height: 1.02; letter-spacing: -.055em; }
.legal-hero h1 em { color: var(--legal-mint); font-style: normal; }
.legal-hero-lede { max-width: 720px; margin: 24px 0 0; color: var(--legal-muted); font-size: 16px; line-height: 1.6; }
.legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 22px; margin-top: 24px; color: var(--legal-dim); font: 11px/1.4 'IBM Plex Mono', monospace; }
.legal-meta span { display: inline-flex; align-items: center; gap: 8px; }
.legal-meta span::before { content: ''; width: 5px; height: 5px; background: var(--legal-mint); border-radius: 50%; }
.legal-meta a { color: var(--legal-mint-soft); text-decoration: none; }

.legal-main { display: grid; grid-template-columns: 244px minmax(0, 1fr); gap: 64px; padding: 56px 0 92px; }
.legal-aside { min-width: 0; }
.legal-aside-inner { position: sticky; top: 108px; }
.legal-rail-label { display: flex; align-items: center; justify-content: space-between; margin: 0 0 15px; color: var(--legal-dim); font: 11px/1.4 'IBM Plex Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
.legal-rail-label span:last-child { color: var(--legal-mint-soft); }
.legal-toc { position: relative; display: flex; flex-direction: column; border-top: 1px solid var(--legal-line); }
.legal-toc::before { display: none; }
.toc-link { position: relative; display: flex; align-items: center; min-height: 42px; padding: 0 12px 0 0; color: var(--legal-muted); font-size: 13px; line-height: 1.4; text-decoration: none; transition: color .2s ease, background .2s ease; }
.toc-link::before { content: ''; position: static; flex: 0 0 9px; width: 9px; height: 9px; margin-right: 16px; border: 1px solid var(--legal-dim); border-radius: 50%; background: var(--legal-ink); transform: none; transition: border-color .2s ease, background .2s ease; }
.toc-num { flex: 0 0 auto; margin-right: 4px; color: var(--legal-dim); font: inherit; line-height: inherit; text-align: left; }
.toc-link:hover { color: var(--legal-text); background: rgba(17, 208, 162, .04); }
.toc-link.active { color: var(--legal-text); }
.toc-link.active::before { border-color: var(--legal-mint); background: var(--legal-mint); box-shadow: 0 0 0 4px rgba(17, 208, 162, .1); }
.toc-link.active .toc-num { color: var(--legal-mint-soft); }
.legal-aside-contact { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--legal-line); color: var(--legal-dim); font-size: 12px; line-height: 1.7; }
.legal-aside-contact strong { display: block; margin-bottom: 6px; color: var(--legal-muted); font: 11px/1.4 'IBM Plex Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }
.legal-aside-contact a { color: var(--legal-mint-soft); text-decoration: none; word-break: break-word; }

.legal-content { min-width: 0; }
.legal-content .doc-block { padding: 0 0 34px; margin: 0 0 40px; border: 0; border-bottom: 1px solid var(--legal-line); border-radius: 0; background: transparent; }
.legal-content .doc-intro { padding: 0 0 38px; }
.legal-content .doc-section { scroll-margin-top: 112px; }
.doc-h2 { display: flex; align-items: baseline; gap: 17px; margin: 0 0 20px; color: var(--legal-text); font-size: 28px; font-weight: 600; line-height: 1.25; letter-spacing: -.025em; }
.doc-h2-num { color: var(--legal-mint); font: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: -.025em; }
.doc-p, .doc-ul li, .doc-ol > li, .term-def dd { color: var(--legal-muted); font-size: 15px; line-height: 1.85; }
.doc-p { margin: 0 0 15px; }
.doc-p:last-child { margin-bottom: 0; }
.doc-p strong, .doc-ol strong { color: var(--legal-text); font-weight: 500; }
.doc-link { color: var(--legal-mint-soft); text-decoration: none; border-bottom: 1px solid rgba(117, 238, 208, .35); }
.doc-link:hover { color: var(--legal-text); border-bottom-color: var(--legal-text); }
.doc-section h3 { margin: 30px 0 10px; color: var(--legal-text); font-size: 16px; font-weight: 500; line-height: 1.5; }
.doc-ul, .doc-ol { margin: 0 0 18px; padding: 0; list-style: none; }
.doc-ul li { position: relative; padding-left: 23px; margin: 0 0 8px; }
.doc-ul li::before { content: ''; position: absolute; left: 4px; top: .8em; width: 6px; height: 6px; background: var(--legal-mint); }
.doc-ol { counter-reset: legal-ol; }
.doc-ol > li { position: relative; padding-left: 42px; margin: 0 0 11px; counter-increment: legal-ol; }
.doc-ol > li::before { content: counter(legal-ol, decimal-leading-zero); position: absolute; left: 0; top: .1em; color: var(--legal-mint-soft); font: 11px/1.5 'IBM Plex Mono', monospace; }
.term-def { display: grid; grid-template-columns: minmax(96px, 150px) minmax(0, 1fr); margin: 0; }
.term-def dt, .term-def dd { padding: 13px 0; margin: 0; border-top: 1px solid var(--legal-line-soft); }
.term-def dt { color: var(--legal-text); font-size: 14px; font-weight: 500; line-height: 1.75; }
.term-def dd { padding-left: 24px; }
.warning { display: flex; align-items: flex-start; gap: 11px; margin: 24px 0; padding: 15px 17px; border-left: 2px solid var(--legal-warn); background: rgba(215, 165, 91, .08); color: #dbc39d; font-size: 13px; line-height: 1.75; }
.legal-inline-icon { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 3px; opacity: .9; filter: brightness(0) saturate(100%) invert(74%) sepia(69%) saturate(1037%) hue-rotate(119deg) brightness(93%) contrast(91%); }
.legal-contact { display: inline-flex; align-items: center; gap: 11px; margin-top: 8px; padding: 12px 15px; border: 1px solid var(--legal-line); color: var(--legal-mint-soft); font: 13px/1.4 'IBM Plex Mono', monospace; }
.legal-contact .legal-inline-icon { width: 17px; height: 17px; margin-top: 0; }
.legal-contact a { color: inherit; text-decoration: none; }
.legal-controls { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 4px; color: var(--legal-muted); font-size: 13px; }
.legal-controls a { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; transition: color .2s ease; }
.legal-controls a:hover { color: var(--legal-mint-soft); }
.legal-controls img { width: 15px; height: 15px; opacity: .7; }
.legal-footer { border-top: 1px solid var(--legal-line); }
.legal-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; color: var(--legal-dim); font: 11px/1.5 'IBM Plex Mono', monospace; }
.legal-footer a { color: inherit; text-decoration: none; transition: color .2s ease; }
.legal-footer a:hover, .legal-footer a[aria-current='page'] { color: var(--legal-mint-soft); }
.legal-footer-links { display: flex; align-items: center; gap: 18px; }

@media (max-width: 900px) {
  .legal-nav-links { display: none; }
  .legal-main { grid-template-columns: 1fr; gap: 38px; padding-top: 38px; }
  .legal-aside-inner { position: static; }
  .legal-toc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--legal-line); padding-bottom: 14px; }
  .toc-link { min-height: 38px; padding-left: 0; }
  .toc-link::before { display: block; }
  .legal-aside-contact { display: none; }
}
@media (max-width: 640px) {
  .legal-shell { width: min(100% - 30px, 1180px); }
  .legal-nav { min-height: 66px; }
  .legal-brand img { width: 142px; }
  .legal-brand-note { display: none; }
  .legal-nav-actions { gap: 10px; }
  .legal-nav-actions > a:first-child { display: none; }
  .legal-register { min-height: 34px; padding: 0 12px; }
  .legal-hero-inner { padding: 28px 0 34px; }
  .legal-breadcrumb { margin-bottom: 22px; }
  .legal-hero h1 { font-size: 50px; }
  .legal-hero-lede { margin-top: 19px; font-size: 14px; }
  .legal-main { padding: 34px 0 64px; }
  .legal-toc { grid-template-columns: 1fr 1fr; }
  .toc-link { font-size: 12px; }
  .doc-h2 { font-size: 24px; gap: 12px; }
  .doc-p, .doc-ul li, .doc-ol > li, .term-def dd { font-size: 14px; line-height: 1.8; }
  .term-def { display: block; }
  .term-def dt { padding-bottom: 3px; border-top: 1px solid var(--legal-line-soft); }
  .term-def dd { padding: 0 0 13px; border-top: 0; }
  .legal-footer-inner { align-items: flex-start; flex-direction: column; justify-content: center; gap: 11px; padding: 22px 0; }
  .legal-footer-links { flex-wrap: wrap; gap: 10px 16px; }
  .legal-controls { align-items: flex-start; flex-direction: column; gap: 12px; }
}
