body.legal-page { min-height: 100dvh; }
.legal-shell { position: relative; z-index: 1; width: min(100% - 32px, 940px); margin: 0 auto; padding: max(24px,env(safe-area-inset-top)) 0 max(64px,env(safe-area-inset-bottom)); }
.legal-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:22px; }
.legal-top-actions { display:flex; align-items:center; gap:8px; }
.legal-back { color:var(--muted); text-decoration:none; font-weight:800; padding:10px 12px; border:1px solid var(--line); border-radius:13px; background:color-mix(in srgb,var(--surface-2),transparent 12%); }
.legal-card { background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2),transparent 4%),color-mix(in srgb,var(--surface-solid),transparent 3%)); border:1px solid var(--line); border-radius:var(--radius-xl); box-shadow:var(--shadow); backdrop-filter:blur(22px); padding:clamp(24px,5vw,50px); }
.legal-card h1 { font-size:clamp(2.35rem,7vw,4.4rem); margin-bottom:10px; }
.legal-card h2 { margin:40px 0 11px; font-size:1.22rem; scroll-margin-top:24px; }
.legal-card h3 { margin:25px 0 8px; font-size:1rem; }
.legal-card p, .legal-card li { color:var(--muted); line-height:1.72; }
.legal-card strong { color:var(--text); }
.legal-card ul, .legal-card ol { padding-left:22px; }
.legal-card li + li { margin-top:7px; }
.legal-card a { color:color-mix(in srgb,var(--accent-2),var(--text) 20%); }
.legal-summary { margin:22px 0 8px; display:grid; gap:8px; }
.legal-summary div { padding:13px 15px; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--surface-3),transparent 15%); color:var(--muted); line-height:1.5; }
.legal-date { color:var(--soft); font-size:.78rem; font-weight:750; }
.legal-warning { border-color:color-mix(in srgb,var(--warning),transparent 72%) !important; background:color-mix(in srgb,var(--warning),transparent 93%) !important; }
.legal-danger { border-color:color-mix(in srgb,var(--danger),transparent 72%) !important; background:color-mix(in srgb,var(--danger),transparent 94%) !important; }
.legal-toc { margin:26px 0 8px; padding:18px; border:1px solid var(--line); border-radius:18px; background:color-mix(in srgb,var(--surface),transparent 6%); }
.legal-toc strong { display:block; margin-bottom:10px; font-size:.84rem; text-transform:uppercase; letter-spacing:.1em; }
.legal-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 14px; }
.legal-toc a { color:var(--muted); text-decoration:none; font-size:.82rem; line-height:1.35; }
.legal-toc a:hover { color:var(--text); text-decoration:underline; }
.legal-callout { margin:20px 0; padding:16px 17px; border-radius:16px; border:1px solid color-mix(in srgb,var(--accent),transparent 78%); background:color-mix(in srgb,var(--accent),transparent 94%); color:var(--muted); line-height:1.58; }
.legal-callout strong { color:var(--text); }
.legal-table { width:100%; border-collapse:collapse; margin:18px 0; font-size:.84rem; }
.legal-table th, .legal-table td { padding:11px 10px; border-bottom:1px solid var(--line); vertical-align:top; text-align:left; line-height:1.45; }
.legal-table th { color:var(--text); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; }
.legal-table td { color:var(--muted); }
.legal-footnote { margin-top:38px; padding-top:18px; border-top:1px solid var(--line); color:var(--soft); font-size:.76rem; line-height:1.55; }
.legal-contact { margin-top:18px; padding:15px 17px; border-radius:16px; border:1px solid var(--line); background:color-mix(in srgb,var(--surface-3),transparent 8%); }

@media (max-width: 640px) {
  .legal-shell { width:min(100% - 20px, 940px); }
  .legal-top { align-items:flex-start; }
  .legal-top-actions { flex-wrap:wrap; justify-content:flex-end; }
  .legal-card { padding:24px 19px 30px; border-radius:22px; }
  .legal-toc nav { grid-template-columns:1fr; }
  .legal-table { display:block; overflow-x:auto; }
}
