/* Legal pages — theme tokens aligned with web/src/styles.css */
:root,
html[data-theme='ink'] {
  color-scheme: dark;
  --surface: #15201b;
  --surface-raised: #1c2923;
  --ink: #e8f0ea;
  --muted: #9aafa3;
  --accent: #6fcf97;
  --line: rgba(232, 240, 234, 0.1);
  --body: #c9d6ce;
}

html[data-theme='ember'] {
  color-scheme: dark;
  --surface: #1c1410;
  --surface-raised: #2a1c16;
  --ink: #f3ebe4;
  --muted: #b8a090;
  --accent: #e07a5f;
  --line: rgba(243, 235, 228, 0.11);
  --body: #d8ccc4;
}

html[data-theme='amber'] {
  color-scheme: dark;
  --surface: #1a1610;
  --surface-raised: #262015;
  --ink: #f4eedf;
  --muted: #b5a682;
  --accent: #e0b35c;
  --line: rgba(244, 238, 223, 0.11);
  --body: #ddd4bc;
}

html[data-theme='ocean'] {
  color-scheme: dark;
  --surface: #0f1c1f;
  --surface-raised: #17282c;
  --ink: #e4f4f2;
  --muted: #8fb3af;
  --accent: #4ecdc4;
  --line: rgba(228, 244, 242, 0.1);
  --body: #b8d4d0;
}

html[data-theme='slate'] {
  color-scheme: dark;
  --surface: #12141a;
  --surface-raised: #1a1d26;
  --ink: #e8eaef;
  --muted: #9aa3b2;
  --accent: #7eb6ff;
  --line: rgba(232, 234, 239, 0.1);
  --body: #c4cad6;
}

html[data-theme='dark'] {
  color-scheme: dark;
  --surface: #111111;
  --surface-raised: #1a1a1a;
  --ink: #f2f2f2;
  --muted: #9e9e9e;
  --accent: #d0d0d0;
  --line: rgba(242, 242, 242, 0.1);
  --body: #cccccc;
}

html[data-theme='light'] {
  color-scheme: light;
  --surface: #f4f5f7;
  --surface-raised: #ffffff;
  --ink: #1a1d24;
  --muted: #667085;
  --accent: #2f6fed;
  --line: rgba(26, 29, 36, 0.1);
  --body: #344054;
}

* {
  box-sizing: border-box;
}

/* Typography scale aligned with Liblib activity/legal pages (Mantine headings) */
:root {
  --legal-fs-body: 1rem;
  --legal-fs-small: 0.875rem;
  --legal-fs-h1: 2.125rem;
  --legal-fs-h2: 1.625rem;
  --legal-fs-h3: 1.375rem;
  --legal-fs-h4: 1.125rem;
  --legal-lh-body: 1.75;
  --legal-lh-h1: 1.3;
  --legal-lh-h2: 1.35;
  --legal-lh-h3: 1.4;
  --legal-lh-h4: 1.45;
}

body {
  margin: 0;
  font-family: 'PingFang SC', 'DM Sans', system-ui, -apple-system, sans-serif;
  background: var(--surface);
  color: var(--ink);
  line-height: var(--legal-lh-body);
  font-size: var(--legal-fs-body);
  word-break: break-word;
  -webkit-font-smoothing: antialiased;
}

/* Desktop reading width aligned with 即梦 draft legal pages (~1020px) */
main.legal-doc {
  box-sizing: border-box;
  width: 100%;
  max-width: 1020px;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 3rem;
}

@media (min-width: 900px) and (max-width: 1115px) {
  main.legal-doc {
    padding: 3rem;
  }
}

@media (min-width: 1116px) {
  main.legal-doc {
    width: 1020px;
    margin: 3rem auto 0;
    padding: 0 0 3rem;
  }
}

.legal-back {
  margin: 0 0 1.25rem;
  font-size: var(--legal-fs-small);
}

.legal-back a {
  color: var(--muted);
  text-decoration: none;
}

.legal-back a:hover {
  color: var(--accent);
}

h1 {
  font-size: var(--legal-fs-h1);
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: var(--legal-lh-h1);
  text-align: center;
  color: var(--ink);
  letter-spacing: 0.01em;
}

.legal-meta {
  color: var(--muted);
  font-size: var(--legal-fs-small);
  margin: 0 0 1.75rem;
  line-height: var(--legal-lh-h4);
  text-align: center;
}

.legal-lead {
  margin: 0 0 1.25rem;
  color: var(--body);
  font-size: var(--legal-fs-body);
}

.legal-notice {
  margin: 0 0 1.75rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-raised);
  color: var(--body);
  font-size: var(--legal-fs-small);
  line-height: var(--legal-lh-h4);
}

.legal-notice strong {
  color: var(--ink);
  font-weight: 600;
}

h2 {
  font-size: var(--legal-fs-h2);
  font-weight: 700;
  margin: 2.5rem 0 0.85rem;
  line-height: var(--legal-lh-h2);
  color: var(--ink);
}

h3 {
  font-size: var(--legal-fs-h3);
  font-weight: 600;
  margin: 1.75rem 0 0.65rem;
  line-height: var(--legal-lh-h3);
  color: var(--ink);
}

h4 {
  font-size: var(--legal-fs-h4);
  font-weight: 600;
  margin: 1.25rem 0 0.5rem;
  line-height: var(--legal-lh-h4);
  color: var(--ink);
}

.legal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.85rem 0 1.15rem;
  font-size: var(--legal-fs-small);
  line-height: var(--legal-lh-h4);
}

.legal-table th,
.legal-table td {
  border: 1px solid var(--line);
  padding: 0.45rem 0.55rem;
  text-align: left;
  vertical-align: top;
  color: var(--body);
}

.legal-table th {
  color: var(--ink);
  background: var(--surface-raised);
}

.legal-appendix {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

p,
li {
  margin: 0 0 0.75rem;
  color: var(--body);
  font-size: var(--legal-fs-body);
  line-height: var(--legal-lh-body);
}

main.legal-doc > p,
main.legal-doc h2 + p,
main.legal-doc h3 + p,
main.legal-doc h4 + p,
main.legal-doc .legal-lead,
main.legal-doc .legal-notice {
  text-align: justify;
  text-justify: inter-ideograph;
}

.legal-meta {
  text-align: center;
}

ul,
ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}

li {
  margin-bottom: 0.5rem;
}

a {
  color: var(--accent);
}

strong,
.legal-em {
  color: var(--ink);
  font-weight: 600;
  font-size: inherit;
}

.legal-toc {
  margin: 1.15rem 0 1.75rem;
  padding-left: 1.5rem;
  color: var(--body);
  font-size: var(--legal-fs-body);
}

.legal-toc li {
  margin-bottom: 0.45rem;
  line-height: var(--legal-lh-h4);
}
