.topbar a { color: inherit; text-decoration: none; }
.topbar-links { display: flex; align-items: center; gap: 1.6rem; }
.topbar-links a, .back-link { border: 1px solid #9ab5c0; padding: .4rem .7rem; border-radius: 4px; font-size: .9rem; }
.reader-shell { max-width: 1320px; margin: 0 auto; padding: 2.5rem 2rem 6rem; display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.reader-toc { position: sticky; top: 1.5rem; padding: 1.25rem 0; border-top: 3px solid #bc6046; }
.reader-label { color: #a6503b; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.reader-toc h2 { font-family: Georgia, 'Noto Serif CJK SC', 'Songti SC', serif; font-size: 1.45rem; margin: .4rem 0 1.1rem; color: #173f52; }
.reader-toc nav { display: grid; gap: .12rem; }
.reader-toc nav a { display: block; padding: .55rem .7rem; color: #365267; text-decoration: none; border-left: 2px solid transparent; line-height: 1.45; font-size: .88rem; }
.reader-toc nav a:hover, .reader-toc nav a:focus-visible { color: #9e4832; background: #f4eee9; border-left-color: #bc6046; }
.reader-article { min-width: 0; max-width: 850px; color: #203846; line-height: 1.9; }
.reader-head { padding: 1.5rem 0 2rem; border-bottom: 1px solid #bdd0d8; margin-bottom: 2rem; }
.reader-head h1 { font-family: Georgia, 'Noto Serif CJK SC', 'Songti SC', serif; color: #173f52; font-size: clamp(2.2rem, 4vw, 3.3rem); margin: .2rem 0 .5rem; line-height: 1.3; }
.reader-head p { color: #58717e; margin: 0 0 .9rem; }
.reader-head a { color: #9e4832; font-weight: 600; }
.reader-article h2, .reader-article h3, .reader-article h4 { scroll-margin-top: 1.5rem; color: #173f52; line-height: 1.45; }
.reader-article h2 { font-family: Georgia, 'Noto Serif CJK SC', 'Songti SC', serif; font-size: 1.65rem; margin: 3.2rem 0 1rem; padding-bottom: .55rem; border-bottom: 1px solid #cbdce2; }
.reader-article h3 { font-size: 1.22rem; margin: 2.3rem 0 .65rem; }
.reader-article h4 { font-size: 1rem; margin: 1.7rem 0 .5rem; }
.reader-article p { margin: .65rem 0 1rem; }
.reader-article .source-note { padding: .65rem 1rem; background: #edf5f7; border-left: 3px solid #8bb7c4; font-size: .93rem; }
.reader-article .source-item { padding-left: 1.3em; text-indent: -1.3em; margin: .45rem 0; }
.reader-article .numbered-clause { padding-left: 4.2em; text-indent: -4.2em; }
.reader-article .table-caption { text-align: center; font-weight: 700; margin: 2rem 0 .5rem; }
.table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid #cbdce2; margin-bottom: 2rem; }
.reader-article table { border-collapse: collapse; width: 100%; min-width: 760px; font-size: .85rem; line-height: 1.55; }
.reader-article th, .reader-article td { border: 1px solid #cbdce2; padding: .55rem .65rem; text-align: left; vertical-align: top; }
.reader-article th { background: #eaf3f5; white-space: nowrap; }
.reader-article tr:nth-child(2n) { background: #f8fbfc; }
.reader-article footer { border-top: 1px solid #cbdce2; padding-top: 1rem; margin-top: 4rem; color: #667f8b; font-size: .85rem; }
@media (max-width: 800px) { .reader-shell { display: block; padding: 1rem 1rem 4rem; } .reader-toc { position: static; padding: .8rem 0; } .reader-toc h2 { margin-bottom: .5rem; } .reader-toc nav { display: flex; overflow-x: auto; gap: .25rem; padding-bottom: .5rem; } .reader-toc nav a { flex: 0 0 auto; border: 1px solid #d1dfe4; border-radius: 3px; white-space: nowrap; } .reader-head { padding-top: 1rem; } .topbar-links p { display: none; } }
