:root {
  --legal-ink: #17241f;
  --legal-muted: #64716c;
  --legal-line: #d9e0dc;
  --legal-paper: #f4f7f5;
  --legal-green: #0f715e;
  --legal-green-dark: #0b342b;
  --legal-warm: #df713b;
  --legal-warm-soft: #fff5ef;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--legal-paper); -webkit-tap-highlight-color: transparent; }
body { min-height: 100vh; min-height: 100dvh; margin: 0; color: var(--legal-ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; letter-spacing: 0; }
a { color: inherit; }
.legal-page :focus-visible { outline: 3px solid #efaa84; outline-offset: 2px; }

.legal-topbar { display: grid; min-height: 70px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 max(32px,calc((100% - 1240px)/2)); border-bottom: 1px solid var(--legal-line); background: #fff; }
.legal-brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; text-decoration: none; }
.legal-brand > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 4px; background: var(--legal-green); color: #fff; font-weight: 900; }
.legal-brand strong { font-family: SimSun, "Songti SC", serif; font-size: 17px; }
.legal-topbar nav { display: flex; align-items: stretch; align-self: stretch; }
.legal-topbar nav a { display: flex; min-width: 92px; align-items: center; justify-content: center; border-bottom: 2px solid transparent; color: var(--legal-muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.legal-topbar nav a[aria-current="page"] { border-bottom-color: var(--legal-green); color: var(--legal-green); }
.legal-login-link { display: inline-flex; min-height: 44px; align-items: center; justify-self: end; color: var(--legal-green); font-size: 12px; font-weight: 800; text-decoration: none; }

.legal-shell { display: grid; width: min(1240px,calc(100% - 64px)); grid-template-columns: 220px minmax(0,820px); justify-content: space-between; gap: 70px; margin: 58px auto 80px; }
.legal-index { position: sticky; top: 30px; align-self: start; padding: 4px 0 22px 18px; border-left: 3px solid var(--legal-warm); }
.legal-index > span { color: var(--legal-green); font-family: Georgia, serif; font-size: 9px; font-weight: 800; }
.legal-index > strong { display: block; margin-top: 11px; font-family: SimSun, "Songti SC", serif; font-size: 22px; }
.legal-index > p { margin: 8px 0 25px; color: var(--legal-muted); font-size: 10px; line-height: 1.6; }
.legal-index > a { display: inline-flex; min-height: 44px; align-items: center; gap: 14px; color: var(--legal-green); font-size: 11px; font-weight: 800; text-decoration: none; }
.legal-document { min-width: 0; }
.legal-document-heading > p { margin: 0 0 13px; color: var(--legal-green); font-family: Georgia, serif; font-size: 10px; font-weight: 800; }
.legal-document-heading h1 { margin: 0; font-family: SimSun, "Songti SC", serif; font-size: 46px; line-height: 1.2; }
.legal-document-heading dl { display: flex; gap: 28px; margin: 24px 0 0; }
.legal-document-heading dl div { display: flex; gap: 8px; align-items: baseline; }
.legal-document-heading dt { color: var(--legal-muted); font-size: 10px; }
.legal-document-heading dd { margin: 0; font-size: 11px; font-weight: 800; }
.legal-lead { margin: 30px 0 0; color: #3f4f48; font-size: 15px; line-height: 2; }
.legal-important { margin: 34px 0 8px; padding: 22px 24px; border-left: 4px solid var(--legal-warm); background: var(--legal-warm-soft); }
.legal-important strong { font-size: 13px; }
.legal-important p { margin: 8px 0 0; color: #684a3b; font-size: 12px; line-height: 1.9; }
.legal-document section { padding: 34px 0 31px; border-bottom: 1px solid var(--legal-line); scroll-margin-top: 30px; }
.legal-document section h2 { display: grid; grid-template-columns: 35px minmax(0,1fr); gap: 10px; margin: 0 0 17px; font-size: 20px; line-height: 1.5; }
.legal-document section h2 span { padding-top: 4px; color: var(--legal-green); font-family: Georgia, serif; font-size: 10px; }
.legal-document section p { margin: 0 0 12px; color: #44534d; font-size: 13px; line-height: 2; }
.legal-document section p:last-child { margin-bottom: 0; }
.legal-document section ul { display: grid; gap: 10px; margin: 15px 0 0; padding: 0; list-style: none; }
.legal-document section li { position: relative; padding-left: 17px; color: #44534d; font-size: 13px; line-height: 1.9; }
.legal-document section li::before { position: absolute; top: .72em; left: 0; width: 5px; height: 5px; background: var(--legal-warm); content: ""; }
.legal-document section a { color: var(--legal-green); font-weight: 800; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-data-list { margin: 21px 0; border-top: 1px solid var(--legal-line); }
.legal-data-list > div { display: grid; grid-template-columns: 175px minmax(0,1fr); gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--legal-line); }
.legal-data-list strong { font-size: 12px; line-height: 1.8; }
.legal-data-list p { margin: 0 !important; font-size: 12px !important; line-height: 1.85 !important; }

.legal-footer { display: grid; min-height: 96px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 max(32px,calc((100% - 1240px)/2)); background: #07110e; color: #9aaba5; }
.legal-footer > strong { color: #fff; font-family: SimSun, "Songti SC", serif; font-size: 14px; }
.legal-footer nav { display: flex; gap: 24px; }
.legal-footer nav a { display: inline-flex; min-height: 44px; align-items: center; font-size: 11px; }
.legal-footer > span { justify-self: end; font-size: 9px; }

.legal-mobile { overflow-x: hidden; background: #fff; }
.legal-mobile-topbar { position: sticky; top: 0; z-index: 10; display: grid; min-height: 58px; grid-template-columns: 52px 1fr 52px; align-items: center; padding-top: env(safe-area-inset-top); border-bottom: 1px solid var(--legal-line); background: rgba(255,255,255,.97); }
.legal-mobile-topbar a { display: grid; min-width: 44px; min-height: 44px; place-items: center; color: var(--legal-green); font-size: 13px; font-weight: 800; text-decoration: none; }
.legal-mobile-topbar a:first-child { font-size: 20px; }
.legal-mobile-topbar strong { text-align: center; font-size: 15px; }
.legal-mobile-switch { display: grid; grid-template-columns: repeat(2,1fr); margin: 14px 16px 0; border: 1px solid var(--legal-line); border-radius: 6px; }
.legal-mobile-switch a { display: grid; min-height: 44px; place-items: center; color: var(--legal-muted); font-size: 12px; font-weight: 800; text-decoration: none; }
.legal-mobile-switch a[aria-current="page"] { background: var(--legal-green); color: #fff; }
.legal-mobile main { padding: 34px max(18px,env(safe-area-inset-right)) 56px max(18px,env(safe-area-inset-left)); }
.legal-mobile .legal-document-heading h1 { font-size: 34px; }
.legal-mobile .legal-document-heading dl { flex-direction: column; gap: 7px; margin-top: 18px; }
.legal-mobile .legal-lead { margin-top: 23px; font-size: 14px; line-height: 1.9; }
.legal-mobile .legal-important { margin-top: 26px; padding: 18px; }
.legal-mobile .legal-document section { padding: 28px 0 25px; }
.legal-mobile .legal-document section h2 { grid-template-columns: 30px minmax(0,1fr); font-size: 18px; }
.legal-mobile .legal-document section p, .legal-mobile .legal-document section li { font-size: 13px; line-height: 1.9; }
.legal-mobile .legal-data-list > div { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
.legal-mobile .legal-footer { display: flex; min-height: 118px; flex-wrap: wrap; justify-content: space-between; gap: 0 16px; padding: 17px 18px max(17px,env(safe-area-inset-bottom)); }
.legal-mobile .legal-footer nav { order: 3; width: 100%; border-top: 1px solid #26332f; }
.legal-mobile .legal-footer nav a { flex: 1; }

@media (max-width: 800px) {
  .legal-desktop .legal-topbar { grid-template-columns: 1fr auto; }
  .legal-desktop .legal-topbar nav { display: none; }
  .legal-desktop .legal-shell { width: min(720px,calc(100% - 40px)); grid-template-columns: 1fr; gap: 30px; }
  .legal-desktop .legal-index { position: static; }
}

@media (max-width: 380px) {
  .legal-mobile main { padding-right: 16px; padding-left: 16px; }
  .legal-mobile .legal-document-heading h1 { font-size: 31px; }
  .legal-mobile .legal-important { padding: 16px; }
}
