/* A single compact control bar remains available while the story scrolls. */
.reader-toolbar.reader-dock{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr) minmax(240px,1fr);align-items:center;position:sticky;top:0;z-index:5;max-width:none;height:64px;min-height:64px;padding:9px max(24px,calc((100vw - 1176px)/2));gap:20px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 6px 16px rgb(0 0 0/.07)}
.reader-dock-leading{display:flex;align-items:center;gap:8px;min-width:0}
.reader-dock .reader-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;white-space:nowrap;color:var(--muted)}
.reader-dock .toolbar-chapter{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:var(--text);font-weight:500}
.reader-dock-actions{display:flex;align-items:center;justify-self:end;gap:8px;flex-shrink:0}
.reader-dock .reader-step{display:inline-flex;width:44px;height:44px;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:5px;color:var(--muted);font:29px/1 Georgia,serif}
.reader-dock button{min-height:44px;white-space:nowrap;padding:6px 12px}
.reader-dock button:hover,.reader-dock .reader-step:hover{background:var(--surface);border-color:var(--accent);color:var(--accent)}
.reader-dock .reader-contents-open{font:13px/1.4 system-ui,sans-serif;color:var(--text)}
.reader-dock .reader-contents-label{margin:0;font:inherit;color:inherit}
.reader-contents-icon{display:none;width:19px;height:19px;flex-shrink:0}
.reader-contents-open small{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.reader-contents-open small:not(:empty){margin-left:7px}
.reader-main [id],.side-story-reader .chapter-body [id]{scroll-margin-top:var(--reader-dock-offset,84px)}
.story-contents-dialog{width:min(580px,calc(100% - 32px));max-height:82dvh;padding:25px 28px;overscroll-behavior:contain;overflow:hidden}
.story-contents-dialog[open]{display:flex;flex-direction:column}
.story-contents-dialog .dialog-heading,.story-contents-dialog .contents-story-name{flex-shrink:0}
.story-contents-dialog>nav{min-height:0;overflow:auto;overscroll-behavior:contain}
.story-contents-dialog .dialog-heading{margin-bottom:12px}
.story-contents-dialog .dialog-heading button{width:36px;min-height:36px;flex-shrink:0;border-radius:4px}
.contents-story-name{margin:0 0 22px;color:var(--muted);font:17px/1.45 Georgia,serif;overflow-wrap:anywhere}
.story-contents-dialog ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.story-contents-dialog li{border-bottom:1px solid var(--line)}
.story-contents-dialog li a{display:block;min-height:48px;padding:13px 12px;font-size:14px;line-height:1.65;border-left:2px solid transparent;overflow-wrap:anywhere}
.story-contents-dialog li a:hover{background:var(--surface-2)}
.story-contents-dialog a[aria-current=location]{border-left-color:var(--accent);color:var(--accent);background:var(--surface-2)}
.story-contents-dialog a:focus-visible{outline-offset:-3px}
.chapter-body h3[tabindex="-1"]:focus{outline:none}
@media(max-width:900px){
  .reader-toolbar.reader-dock{grid-template-columns:92px minmax(0,1fr) 92px;height:60px;min-height:60px;padding:7px 12px;gap:8px;font-size:12px}
  .reader-dock-leading,.reader-dock-actions{gap:4px}
  .reader-dock .reader-back{justify-content:center;width:44px;height:44px;min-width:44px;gap:0;font-size:21px}
  .reader-dock .reader-back-label,.reader-dock #settings-open>span,.reader-dock .reader-contents-label,.reader-dock .reader-contents-open small{display:none}
  .reader-dock .toolbar-chapter{font-size:13px;line-height:20px}
  .reader-dock #settings-open,.reader-dock .reader-contents-open{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;min-width:44px}
  .reader-contents-icon{display:block}
  .reader-main [id],.side-story-reader .chapter-body [id]{scroll-margin-top:var(--reader-dock-offset,80px)}
}
@media(max-width:650px){
  .story-contents-dialog{padding:20px;max-height:85dvh}
  .story-contents-dialog .dialog-heading h2{font-size:25px}
}
