body.rule-page main.rule-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; max-width: 1200px; width: calc(100% - 40px); padding: 0; background: transparent; box-shadow: none; }
.rule-toc { position: sticky; top: 24px; max-height: calc(100dvh - 48px); overflow-y: auto; padding: 16px; background: #fff; border: 1px solid #dfe3ec; border-radius: 8px; }
.rule-toc summary { min-height: 44px; padding: 8px 0; cursor: pointer; color: #16223d; font-weight: 700; font-size: 16px; }
.rule-toc ol { list-style: none; margin: 0; padding: 0; }
.rule-toc li { margin: 0; padding: 0; }
.rule-toc a { display: block; padding: 10px 4px; min-height: 44px; color: #2b3896; font-size: 14px; line-height: 1.6; text-decoration: none; overflow-wrap: anywhere; }
.rule-toc .toc-chapter a { margin-top: 12px; color: #16223d; font-weight: 700; border-bottom: 1px solid #dfe3ec; }
.rule-content { min-width: 0; padding: 32px 40px; background: #fff; border: 1px solid #dfe3ec; border-radius: 8px; }
body.rule-page .rule-content p, body.rule-page .rule-content li { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
body.rule-page .rule-content .doc-meta p { font-size: 14px; color: #4b5563; }
body.rule-page .rule-content h2 { scroll-margin-top: 24px; }
body.rule-page .rule-content .rule-back { margin-top: 16px; text-align: right; }
.rule-back a { display: inline-flex; align-items: center; min-height: 44px; color: #2b3896; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.rule-toc a:hover { background: #eef0fa; text-decoration: underline; }
.rule-page a:focus-visible, .rule-page summary:focus-visible { outline: 3px solid #5775c9; outline-offset: 2px; }
@media (max-width: 1023px) {
  body.rule-page main.rule-layout { display: block; width: calc(100% - 24px); margin: 24px auto; }
  .rule-toc { position: static; max-height: none; margin-bottom: 16px; }
  .rule-toc details[open] ol { max-height: 60dvh; overflow-y: auto; }
  .rule-content { padding: 24px 20px; }
}
@media print {
  body.rule-page main.rule-layout { display: block; width: 100%; max-width: none; margin: 0; }
  .rule-toc, .rule-back { display: none; }
  .rule-content { border: 0; padding: 0; }
}
