/* Palette shared by the shelf, dialogs and reader. */
:root{--bg:#f4f6f5;--surface:#fff;--paper:#fff;--ink:#24312f;--muted:#65766d;--border:#d9e2dc;--green:#173c36;--hover:#eaf1ed;--selected:#dce9e0;--nav:#eef2ef;color-scheme:light}
html[data-theme=paper],body[data-theme=paper]{--bg:#f0eadc;--surface:#f6f0e1;--paper:#f4eddc;--ink:#453d30;--muted:#75684f;--border:#d6cbb7;--hover:#e9e0cc;--selected:#dfd5bf;--nav:#ede5d4}
html[data-theme=dark],body[data-theme=dark]{--bg:#111716;--surface:#1b2320;--paper:#161c1b;--ink:#dce5df;--muted:#a2b4a8;--border:#3c4a40;--green:#a4d8b7;--hover:#2b3830;--selected:#334b3c;--nav:#171f1b;color-scheme:dark}
html[data-theme=black],body[data-theme=black]{--bg:#000;--surface:#000;--paper:#000;--ink:#d5ded8;--muted:#a4b1a9;--border:#353d38;--green:#a4d8b7;--hover:#141b17;--selected:#17291d;--nav:#000;color-scheme:dark}
html[data-theme=eink],body[data-theme=eink]{--bg:#fff;--surface:#fff;--paper:#fff;--ink:#000;--muted:#333;--border:#333;--green:#000;--hover:#fff;--selected:#fff;--nav:#fff;color-scheme:light}
html,body{background:var(--bg);color:var(--ink)}.sidebar{background:var(--nav)}.sidebar nav button.active{background:var(--selected);color:var(--ink)}button:hover{background:var(--hover)}.primary{background:var(--green);color:var(--paper)}.primary:hover{background:var(--green);color:var(--paper);filter:brightness(.9)}a{color:var(--green)}.track{background:var(--border)}.rule-card code{color:var(--muted)}.preview-list button.selected,.toc button.active{background:var(--selected);color:var(--ink)}.login-art{background:var(--nav);color:var(--ink)}.login-art p{color:var(--muted)!important}.error,.danger{color:#bb423a}body[data-theme=dark] .danger,body[data-theme=black] .danger,body[data-theme=dark] .error,body[data-theme=black] .error{color:#ffaba4}#toast{background:var(--ink);color:var(--paper);pointer-events:none}.check-label{display:flex;align-items:center;gap:10px;line-height:1.6}.check-label input{width:20px;height:20px;flex-shrink:0}dialog{overscroll-behavior:contain}dialog .actions{flex-wrap:wrap}.settings-grid{gap:8px 18px}
/* Constant-height chrome: secondary commands live in the tools menu. */
.reader{height:100dvh;min-height:0;overflow:hidden}.reader-top{display:grid;grid-template-columns:44px minmax(0,1fr) 28px 52px 44px 44px;gap:8px;flex-wrap:nowrap;min-height:60px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top));flex-shrink:0}.reader-top .title{min-width:0;font-size:15px;line-height:1.5}.reader-top button{height:44px;padding:0 7px;margin:0;min-width:0;border-radius:8px;font-size:15px}.reader-top .icon-button{font-size:24px}.reader-top .sync-indicator{border:0;padding:0;font-size:16px;background:transparent;min-width:24px;color:var(--muted)}.sync-indicator[data-warning=true]{color:#bd7922}.reader-bottom{flex-shrink:0;display:flex;justify-content:center;flex-wrap:nowrap;min-height:60px;padding:8px max(8px,env(safe-area-inset-left));padding-bottom:max(8px,env(safe-area-inset-bottom))}.reader-navigation{display:grid;grid-template-columns:minmax(85px,1fr) minmax(100px,1.2fr) minmax(85px,1fr);gap:12px;align-items:center;width:min(100%,760px)}.reader-navigation button{height:44px;font-size:15px;line-height:1;padding:0 10px;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.reader-navigation #position-label{border-color:transparent;color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.reader-navigation #next{border-color:var(--green);color:var(--green)}.reader-body{min-width:0}.reading-scroll{position:relative;min-width:0;overflow:auto;scrollbar-gutter:stable;overflow-anchor:none}.prose{padding:36px 32px 36px}.prose p{margin-bottom:.9em}.prose h2{margin-bottom:1.4em}.pdf-container{padding:12px;min-height:0;margin:0;max-width:none;min-width:100%;width:max-content;align-items:center}.pdf-container canvas{max-width:none;display:block;flex-shrink:0}.page-rail{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:76px;font-size:38px;line-height:1;padding:0;background:var(--surface);color:var(--muted);z-index:1}.rail-prev{left:max(16px,calc(50% - var(--reading-width,760px)/2 - 76px))}.rail-next{right:max(16px,calc(50% - var(--reading-width,760px)/2 - 76px))}.reader:has(.pdf-container) .page-rail{background:var(--surface);opacity:.85}.page-rail:hover{opacity:1;color:var(--ink)}#chunk-controls{text-align:center;padding:0 20px 26px}#chunk-controls:empty{display:none}#continue-chunk{width:min(100%,500px);min-height:44px}.reader-menu{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reader-menu button{min-height:48px;text-align:left}.conflict{font-size:14px;padding:8px 16px;background:#fff1d7;flex-shrink:0}body[data-theme=dark] .conflict,body[data-theme=black] .conflict{background:#302810;color:#ffe4a7}body[data-theme=dark] .conflict button,body[data-theme=black] .conflict button{color:#ffe4a7;border-color:#82744a}
/* The drawer overlays rather than changing line wraps or PDF zoom. */
#toc-backdrop{position:absolute;inset:0;background:#0004;border:0;border-radius:0;z-index:3}.toc{position:absolute;inset:0 auto 0 0;width:min(360px,88vw);z-index:4;padding:0;display:flex;flex-direction:column;overflow:hidden;box-shadow:4px 0 18px #0002}.toc-head{padding:12px;border-bottom:1px solid var(--border);flex-shrink:0}.toc-head .row{margin-bottom:8px}.toc-head input{margin-bottom:8px}.toc .toc-head button{width:auto;display:inline-block;margin:0;padding:8px 12px;border:1px solid var(--border)}#toc-list{overflow:auto;flex:1;padding:8px;min-height:0;overscroll-behavior:contain}#toc-list button{padding:11px 14px;margin:0 0 3px;min-height:44px;line-height:1.5;overflow-wrap:anywhere}#toc-list [aria-current]{border-left:3px solid var(--green);font-weight:700}.toc-pager{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:8px;gap:6px}.toc-pager button{width:auto;font-size:13px;margin:0;padding:10px 8px;border:1px solid var(--border)}.toc-pager span{font-size:12px}.toc-open .rail-prev{visibility:hidden}.focus-mode .reader-top,.focus-mode .reader-bottom{display:none}#exit-focus{display:none;position:absolute;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:3;min-height:44px}.focus-mode #exit-focus{display:block}
body[data-theme=dark][data-media=auto] #pdf-canvas{filter:invert(.9) hue-rotate(180deg)}body[data-theme=black][data-media=auto] #pdf-canvas{filter:invert(1) hue-rotate(180deg)}body[data-theme=black] .cover,body[data-theme=black] .pdf-container canvas{box-shadow:none}
/* E-ink uses stable black/white surfaces and discrete viewport steps. No fake
   full-screen flashes: actual hardware waveform/full refresh belongs to the OS. */
body[data-theme=eink] *,body[data-theme=eink] *::before,body[data-theme=eink] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important}body[data-theme=eink] .reading-scroll{overflow-y:hidden;touch-action:none}body[data-theme=eink] .prose{font-weight:500}body[data-theme=eink] .cover{background:#fff!important;color:#000;border:2px solid #000;transform:none!important}body[data-theme=eink] .cover small{color:#333}body[data-theme=eink] .cover::after,body[data-theme=eink] .login-art::after{display:none}body[data-theme=eink] img,body[data-theme=eink] canvas{filter:grayscale(1)!important}body[data-theme=eink] .toc button.active,body[data-theme=eink] .sidebar nav button.active{outline:2px solid #000;outline-offset:-2px;font-weight:700}body[data-theme=eink] .primary{background:#000;color:#fff}body[data-theme=eink] .conflict{background:#fff;color:#000;border-bottom:2px solid #000}body[data-theme=eink] .conflict button{color:#000;border-color:#000}body[data-theme=eink] dialog::backdrop{background:#fff}body[data-theme=eink] #toc-backdrop{background:#fff}body[data-theme=eink] .page-rail{opacity:1}body[data-theme=eink] .track span{background:#000}body[data-theme=eink] .sync-indicator{color:#000}
.reader:has(.pdf-container) .rail-prev{left:12px}.reader:has(.pdf-container) .rail-next{right:12px}
@media(max-width:1100px){.page-rail{display:none}}
@media(max-width:800px){.reader-top{grid-template-columns:40px minmax(0,1fr) 26px 46px 42px 40px;gap:4px;padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right));min-height:60px}.reader-top .title{min-width:0;font-size:14px}.reader-top button{padding:0 4px;font-size:14px;height:44px}.reader-top .icon-button{font-size:24px}.reader-bottom{padding-top:6px;min-height:56px;flex-wrap:nowrap}.reader-navigation{gap:6px}.reader-navigation button{font-size:14px;padding:0 6px}.reader-navigation #position-label{font-size:13px}.prose{padding:24px 20px 28px}.pdf-container{padding:8px}.settings-grid{grid-template-columns:1fr 1fr;gap:0 12px}.settings-grid label{line-height:1.5}.settings-grid select{font-size:14px;padding:10px 7px}.conflict{gap:6px}.conflict span{flex-basis:100%}.conflict button{min-height:36px}.sidebar nav{flex-wrap:wrap}.sidebar .brand{flex-shrink:0}}
@media(max-width:360px){.settings-grid{grid-template-columns:1fr}.reader-menu{grid-template-columns:1fr}.reader-top .title{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.ui-icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.sidebar nav button{display:flex;align-items:center;gap:12px;min-height:46px}.settings-panel{max-width:760px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.settings-panel .actions{position:sticky;bottom:0;padding:12px 0;background:var(--surface)}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid var(--border);border-radius:9px;min-height:44px;text-decoration:none;color:var(--ink);background:var(--surface)}.button-link:hover{background:var(--hover)}.book-actions,.book-danger{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;flex-wrap:wrap}.book-danger{border-top:1px solid var(--border);padding-top:20px}.dialog-head button{width:40px;height:40px;padding:7px;display:grid;place-items:center}.toc-head{padding:8px 12px}.toc-head .row{margin-bottom:0;gap:6px}.toc-head> .row{margin-bottom:8px}.toc-head input{margin-bottom:0}.toc .toc-head button{min-height:36px;font-size:13px;padding:6px 8px}.toc-head small{font-weight:400;margin-left:6px;font-size:12px}#toc-list{padding:0 8px;position:relative}#toc-items{position:relative;min-height:48px}#toc-list button{position:absolute;left:0;width:100%;height:48px;min-height:48px;padding:12px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px;border-radius:5px}button:disabled{cursor:default}button[data-busy]{cursor:progress}.prose p{margin-bottom:.65em}
@media(max-width:800px){.sidebar{gap:14px}.sidebar nav{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.sidebar nav button{flex-direction:column;gap:5px;padding:9px 2px;font-size:12px;white-space:nowrap}.settings-panel{padding:16px}.main{padding:24px 16px}.book-actions>*{flex:1;white-space:nowrap}}

.prose p.auto-indent{text-indent:2em}
