.nb-novel, .nb-reader { --nb-reader-bg: var(--nb-surface, #fff); --nb-reader-color: var(--nb-ink, #28343b); --nb-reader-font: 18px; --nb-reader-leading: 1.9; color: var(--nb-reader-color); }
.nb-formatted-text { white-space: pre-wrap; }
.nb-novel__stats, .nb-novel__actions, .nb-episode-nav, .nb-reader__tools { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem 1rem; }
.nb-novel__stats { color: var(--nb-muted, #68747a); font-size: .9em; margin-bottom: 1.25rem; }
.nb-novel__tagline { font-size: 1.15em; font-weight: 700; }
.nb-novel__notes, .nb-reader__preface, .nb-reader__afterword { background: var(--nb-tint, #f2f5f2); border-left: 3px solid var(--nb-blue-600, #416f8b); margin: 1.5rem 0; padding: 1rem 1.25rem; }
.nb-novel__notes h2, .nb-reader__preface h2, .nb-reader__afterword h2 { font-size: 1rem; margin-top: 0; }
.nb-novel__actions { margin: 1.5rem 0; }
.nb-novel__actions a, .nb-episode-nav a, .nb-episode-nav span, .nb-episode-nav button, .nb-reader__tools button, .nb-reader__manual button { background: var(--nb-surface, #fff); border: 1px solid var(--nb-line, #dce2df); border-radius: var(--nb-radius, 6px); color: var(--nb-blue-600, #416f8b); padding: .55rem .8rem; text-decoration: none; }
.nb-novel__actions a:hover, .nb-episode-nav a:hover, .nb-episode-nav button:hover, .nb-reader__tools button:hover, .nb-reader__manual button:hover { background: var(--nb-tint-blue, #eef3f5); color: var(--nb-navy-900, #1d3042); }
.nb-novel__actions .nb-primary-link { background: var(--nb-blue-600, #416f8b); border-color: var(--nb-blue-600, #416f8b); color: #fff; }
.nb-toc-section { border-top: 1px solid var(--nb-line, #dce2df); padding: .7rem 0; }
.nb-toc-section summary { cursor: pointer; font-weight: 700; }
.nb-toc-section ol, .nb-toc-unsectioned { line-height: 1.7; }
.nb-toc-section li.is-current > a, .nb-toc-unsectioned li.is-current > a { font-weight: 700; text-decoration-thickness: 3px; }
.nb-episode-nav { justify-content: space-between; margin: 1.2rem 0; }
.nb-episode-nav > * { flex: 1 1 9rem; text-align: center; }
.nb-episode-nav span[aria-disabled="true"] { color: var(--nb-muted, #68747a); }
.nb-reader__breadcrumb { align-items: center; display: flex; flex-wrap: wrap; font-size: .88em; gap: .35rem; margin-bottom: 1rem; }
.nb-reader__tools { justify-content: flex-end; }
.nb-reader__tools--after { margin: 1rem 0 .25rem; }
.nb-reader__body { background: var(--nb-reader-bg); color: var(--nb-reader-color); font-size: var(--nb-reader-font); line-height: var(--nb-reader-leading); margin: 1.5rem auto; max-width: 850px; padding: clamp(1rem, 4vw, 2.5rem); }
[data-nb-reading-end] { height: 1px; }
.nb-reader[data-font="small"] { --nb-reader-font: 16px; } .nb-reader[data-font="large"] { --nb-reader-font: 20px; }
.nb-reader[data-leading="narrow"] { --nb-reader-leading: 1.7; } .nb-reader[data-leading="wide"] { --nb-reader-leading: 2.15; }
.nb-reader[data-theme="sepia"] { --nb-reader-bg: #f8f1df; --nb-reader-color: #3a3126; } .nb-reader[data-theme="dark"] { --nb-reader-bg: #17191c; --nb-reader-color: #e7e9ec; }
.nb-reader__toc { background: var(--nb-surface, #fff); bottom: 0; box-shadow: -6px 0 24px rgba(20, 33, 49, .16); color: var(--nb-ink, #28343b); max-width: min(90vw, 380px); overflow: auto; padding: 1rem; position: fixed; right: 0; top: 0; width: 100%; z-index: 100002; }
.nb-reader__toc-backdrop { background: rgba(10, 18, 29, .46); inset: 0; position: fixed; z-index: 100001; }
.nb-reader__toc-header { align-items: center; display: flex; justify-content: space-between; }
.nb-reader__toc-header h2 { margin: 0; }
.nb-reader__toc-header button { min-height: 40px; }
.nb-reading-settings { background: var(--nb-tint, #f2f5f2); border: 1px solid var(--nb-line, #dce2df); border-radius: var(--nb-radius, 6px); margin: 1.5rem 0; padding: 1rem; }
.nb-reading-settings fieldset { border: 0; display: flex; flex-wrap: wrap; gap: 1rem; margin: .7rem 0; padding: 0; }
.nb-reading-settings legend { font-weight: 700; margin-bottom: .35rem; width: 100%; }
.nb-reader__toast { background: var(--nb-navy-950, #142131); border-radius: var(--nb-radius, 6px); bottom: 1rem; color: #fff; left: 50%; opacity: 0; padding: .6rem 1rem; pointer-events: none; position: fixed; transform: translate(-50%, 1rem); transition: .2s; z-index: 100001; }
.nb-reader__toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 1100px) { .nb-reading-view .content-in { max-width: 1220px; } }
@media (min-width: 1000px) {
    .nb-reader { align-items: start; display: grid; gap: 0 30px; grid-template-columns: minmax(0, 850px) 300px; }
    .nb-reader > * { grid-column: 1; }
    .nb-reader > .nb-reader__toc { border: 1px solid var(--nb-line, #dce2df); border-radius: var(--nb-radius, 6px); box-shadow: none; display: block !important; grid-column: 2; grid-row: 1 / span 30; max-height: calc(100vh - 2rem); max-width: none; padding: 1rem; position: sticky; top: 1rem; width: 100%; }
    .nb-reader__toc-header button, .nb-reader__tools [data-nb-toc-toggle] { display: none; }
    .nb-reader__toc-backdrop { display: none !important; }
}
@media (max-width: 999px) { body.nb-toc-open { overflow: hidden; } }
@media (max-width: 600px) { .nb-reader { --nb-reader-font: 17px; } .nb-reader[data-font="small"] { --nb-reader-font: 15px; } .nb-reader[data-font="large"] { --nb-reader-font: 19px; } .nb-episode-nav > * { flex: 1 1 7rem; } }
