.legal-page { max-width: 80rem; margin: 0 auto; padding: 10rem 1.5rem 2rem; }
.legal-header { margin-bottom: 2.5rem; }
.legal-back { display: inline-flex; align-items: center; gap: .6rem; margin-bottom: 2.5rem; color: #64748b; font-size: .8rem; font-weight: 650; }
.legal-back:hover { color: #293cff; }
.legal-header h1 { margin-top: 1rem; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.3; font-weight: 850; letter-spacing: -.045em; }
.legal-dates { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1.25rem; color: #64748b; font-size: .8rem; }
.legal-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 2rem; align-items: start; }
.legal-toc { position: sticky; top: 7rem; max-height: calc(100dvh - 8rem); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #e2e8f0; border-radius: 1.25rem; background: #f8fafc; padding: 1.25rem; }
.legal-toc h2 { margin-bottom: .75rem; color: #111827; font-size: .8rem; font-weight: 800; }
.legal-toc a { display: block; border-radius: .5rem; padding: .45rem .5rem; color: #64748b; font-size: .75rem; line-height: 1.8; overflow-wrap: anywhere; }
.legal-toc a:hover { background: rgb(41 60 255 / .05); color: #293cff; }
.legal-page a:focus-visible, .legal-toc:focus-visible, .legal-table:focus-visible { outline: 3px solid rgb(39 125 252 / .35); outline-offset: 3px; }
.legal-document { min-width: 0; border: 1px solid #e2e8f0; border-radius: 1.5rem; background: linear-gradient(145deg, #fff, #f8fafc); padding: clamp(1.25rem, 3vw, 2.5rem); color: #475569; font-size: .9rem; line-height: 1.95; overflow-wrap: anywhere; }
.legal-document > p + p, .legal-document section > p + p { margin-top: 1rem; }
.legal-document section { margin-top: 2.5rem; border-top: 1px solid #e2e8f0; padding-top: 2rem; }
.legal-document section h2 { margin-bottom: 1.25rem; color: #111827; font-size: 1.2rem; line-height: 1.6; font-weight: 800; letter-spacing: -.02em; }
.legal-document :is(ul, ol) { margin: 1rem 0; padding-inline-start: 1.25rem; }
.legal-document ul { list-style: disc; }
.legal-document ol { list-style: decimal; }
.legal-document strong { color: #111827; font-weight: 800; }
.legal-document li + li { margin-top: .4rem; }
.legal-document a { color: #293cff; text-decoration: underline; text-underline-offset: .2em; }
.legal-document code { border-radius: .3rem; background: rgb(15 23 42 / .05); padding: .1rem .3rem; font-size: .85em; }
.legal-table { max-width: 100%; overflow-x: auto; margin: 1.5rem 0; border: 1px solid #e2e8f0; border-radius: .8rem; scrollbar-gutter: stable; }
.legal-table table { width: 100%; min-width: calc(var(--legal-columns, 2) * 12rem); border-collapse: collapse; table-layout: fixed; font-size: .8rem; line-height: 1.85; }
.legal-table th, .legal-table td { padding: .9rem 1rem; border-bottom: 1px solid #e2e8f0; text-align: start; vertical-align: top; }
.legal-table th + th, .legal-table td + td, .legal-table th + td { border-inline-start: 1px solid #e2e8f0; }
.legal-table thead { background: #f1f5f9; color: #334155; }
.legal-table th { font-weight: 750; }
.legal-table tbody tr:last-child > * { border-bottom: 0; }
.legal-document .legal-end-dates { margin-bottom: 0; }
.dark .legal-back, .dark .legal-dates { color: #94a3b8; }
.dark .legal-back:hover, .dark .legal-document a { color: #8db5ff; }
.dark .legal-toc { border-color: rgb(255 255 255 / .1); background: rgb(255 255 255 / .035); }
.dark .legal-toc h2, .dark .legal-document section h2 { color: #f1f5f9; }
.dark .legal-toc a { color: #94a3b8; }
.dark .legal-toc a:hover { background: rgb(123 169 255 / .08); color: #8db5ff; }
.dark .legal-document { border-color: rgb(255 255 255 / .1); background: linear-gradient(145deg, rgb(255 255 255 / .055), rgb(255 255 255 / .025)); color: #cbd5e1; }
.dark .legal-document section, .dark .legal-table, .dark .legal-table th, .dark .legal-table td { border-color: rgb(255 255 255 / .12); }
.dark .legal-table thead { background: rgb(255 255 255 / .055); color: #e2e8f0; }
.dark .legal-document code { background: rgb(255 255 255 / .08); }
.dark .legal-document strong { color: #f1f5f9; }
@media (max-width: 1000px) {
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .legal-toc { position: static; }
  .legal-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
}
@media (max-width: 600px) {
  .legal-page { padding-top: 8.5rem; }
  .legal-header { margin-bottom: 1.75rem; }
  .legal-back { margin-bottom: 1.75rem; }
  .legal-toc ol { grid-template-columns: minmax(0, 1fr); }
  .legal-document { border-radius: 1.25rem; }
}
