html.legal-open { overflow:hidden; scroll-snap-type:none; }
.legal-modal { width:min(860px,calc(100vw - 40px)); max-width:none; max-height:calc(100dvh - 48px); padding:0; border:1px solid var(--line); border-radius:20px; background:var(--bg); color:var(--ink); box-shadow:0 24px 90px #0006; }
.legal-modal[open] { display:flex; flex-direction:column; }
.legal-modal::backdrop { background:#000b; backdrop-filter:blur(6px); }
.legal-modal-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px; border-bottom:1px solid var(--line); flex-shrink:0; }
.legal-modal-header h2 { margin:0; font-size:22px; line-height:1.4; }
.legal-modal-close { display:grid; place-items:center; width:36px; height:36px; padding:0; flex-shrink:0; border:1px solid var(--line); border-radius:50%; font-size:26px; line-height:1; color:var(--ink); background:var(--card); }
.legal-modal-close:hover { color:var(--blue); border-color:var(--blue); }
.legal-modal-body { padding:20px 24px; overflow-y:auto; overscroll-behavior:contain; min-height:0; font-size:14px; line-height:1.7; }
.legal-modal-body > nav { justify-content:center; gap:8px; margin:16px 0 24px; font-size:13px; }
.legal-modal-body > nav a { padding:8px 14px; border:0; border-radius:0; background:transparent; color:var(--muted); text-decoration:none; transition:color .18s; }
.legal-modal-body > nav a[aria-current="page"] { color:var(--blue); }
.legal-modal-body > nav a::after { content:none; }
.legal-modal-body a { color:var(--blue); }
@media(max-width:650px) {
  .legal-modal { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:16px; }
  .legal-modal-header { padding:14px 16px; }
  .legal-modal-header h2 { font-size:19px; }
  .legal-modal-body { padding:16px; }
  .legal-modal-body > nav { gap:6px; }
  .legal-modal-body > nav a { padding:8px; font-size:12px; }
}
