.r-reading-layout { display: grid; gap: 32px; min-width: 0; }
.r-reading-main, .r-reading-sidebar { min-width: 0; }
.r-reading-main h2, #article-download { scroll-margin-top: 110px; }
.r-reading-main h2:focus, #article-download:focus { outline: 2px solid var(--r-accent, #355c7d); outline-offset: 6px; }
.r-reading-sidebar { grid-row: 1; font-size: .875rem; line-height: 1.5; }
.r-reading-sidebar-no-toc { display: none; }
.r-toc { border: 1px solid var(--r-border, #deded9); border-radius: 12px; padding: 16px 20px; }
.r-toc summary { font-weight: 650; cursor: pointer; }
.r-toc-desktop { display: none; }
.r-toc .r-toc-title { margin: 0; font-weight: 650; }
.r-toc ol { list-style: none; margin: 16px 0 0; padding: 0; }
.r-toc li { margin: 0 0 10px; }
.r-toc a { color: var(--r-muted, #62686d); text-decoration: none; }
.r-toc a:hover, .r-toc a:focus-visible { color: var(--r-accent, #355c7d); text-decoration: underline; }
.r-magnet { display: grid; gap: 16px; margin: 28px 0; padding: 24px; background: var(--r-raised, #f0f4f7); border-radius: 14px; font-size: .9375rem; }
.r-magnet .r-magnet-kicker, .r-magnet-sticky .r-magnet-kicker { margin: 0 0 6px; font-weight: 650; }
.r-magnet p { margin: 0; }
.r-magnet-button.r-magnet-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 18px; background: var(--r-accent, #355c7d); color: var(--r-on-accent, white); border-radius: 9px; text-decoration: none; font-weight: 600; line-height: 1.4; text-align: center; overflow-wrap: anywhere; }
.r-magnet-button:hover { filter: brightness(.94); }
.r-magnet-button:focus-visible { outline: 2px solid var(--r-accent, #355c7d); outline-offset: 4px; }
.r-magnet-sticky { display: none; }
@media (min-width: 1100px) {
  .r-reading-layout { grid-template-columns: minmax(0, 740px) 240px; gap: 48px; align-items: start; }
  .r-reading-sidebar { display: block; grid-row: 1; grid-column: 2; align-self: stretch; }
  .r-reading-main { grid-row: 1; grid-column: 1; }
  .r-reading-sticky { position: sticky; top: 110px; max-height: calc(100dvh - 134px); overflow-y: auto; padding: 4px; }
  .r-toc { padding: 0; border: 0; }
  .r-toc-desktop { display: block; }
  .r-toc-mobile { display: none; }
  .r-magnet-sticky { display: grid; gap: 10px; margin-top: 24px; padding: 20px 16px; border-radius: 12px; background: var(--r-raised, #f0f4f7); }
}
