:root{--paper: #e9e7e0;--page: #fcfbf8;--ink: #1a1c21;--ink-hover: #2c2f37;--ink-soft: #4a4d55;--muted: #84878f;--rule: #d6d3ca;--lapis: #2a46b8;--lapis-wash: #eaedfa;--gold: #9a6b18;--gold-wash: #f6eedc;--danger: #b23a3a;--select: #d9def6;--drop: #fbfbff;--scrim: rgba(255, 255, 255, .85);--hl-yellow-bg: #fbf0c4;--hl-yellow-line: #d9b64e;--hl-blue-bg: #dce6f8;--hl-blue-line: #6f92cf;--hl-green-bg: #d9edda;--hl-green-line: #6aa86e;--hl-pink-bg: #f9dde6;--hl-pink-line: #cf7396;--reading-font: "Newsreader", Georgia, "Times New Roman", serif;--reading-size: 19px;--reading-leading: 2.05;--display: "Bricolage Grotesque", system-ui, sans-serif;--body: "Newsreader", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--khmer: "Noto Sans Khmer", "Noto Sans JP", "Noto Sans SC", "Noto Sans Thai", "Newsreader", serif}:root[data-theme=sage]{--paper: #d9ded2;--page: #f3f6ee;--ink: #1e2320;--ink-hover: #333930;--ink-soft: #4a534a;--muted: #646e62;--rule: #cfd6c8;--lapis: #2b4aa6;--lapis-wash: #e5eaf6;--gold: #86610f;--gold-wash: #efe9cb;--danger: #a93a30;--select: #d8dcee;--drop: #f8fbf3;--scrim: rgba(243, 246, 238, .92);--hl-yellow-bg: #f2ecc4;--hl-yellow-line: #cdaa4a;--hl-blue-bg: #dee6f4;--hl-blue-line: #6d8fc6;--hl-green-bg: #d9e8d2;--hl-green-line: #689f68;--hl-pink-bg: #f4dee3;--hl-pink-line: #c67a8f}:root[data-theme=dark]{--paper: #0d1014;--page: #161a20;--ink: #d7dae0;--ink-hover: #c4c8cf;--ink-soft: #a7aeb8;--muted: #7d8592;--rule: #262c36;--lapis: #8db2f8;--lapis-wash: #1b2740;--gold: #e0b46a;--gold-wash: #2b2318;--danger: #f0817a;--select: #2c3c60;--drop: #131d2c;--scrim: rgba(22, 26, 32, .92);--hl-yellow-bg: #443a1c;--hl-yellow-line: #b28f34;--hl-blue-bg: #1e2c45;--hl-blue-line: #5c80c6;--hl-green-bg: #1e3721;--hl-green-line: #5d9c66;--hl-pink-bg: #402330;--hl-pink-line: #b76d8d}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none}button,.w,.hl,.hl-pin{-webkit-tap-highlight-color:transparent}#root{display:flex;flex-direction:column}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--lapis);outline-offset:2px;border-radius:2px}.status-banner{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:7px max(14px,env(safe-area-inset-left)) 7px max(14px,env(safe-area-inset-right));background:var(--lapis-wash);color:var(--ink-soft);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:11px;line-height:1.5;text-align:center}.status-banner.is-offline{background:var(--gold-wash);color:var(--gold)}.status-acts{display:flex;gap:6px;flex:0 0 auto}.status-banner .chip{height:24px;padding:0 10px;font-size:10.5px}.bar{flex:0 0 auto;display:flex;align-items:center;gap:18px;padding:0 20px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));height:54px;border-bottom:1px solid var(--rule);background:var(--paper)}.mark{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.03em;margin-right:2px;border:none;background:none;padding:0;color:var(--ink)}button.mark{cursor:pointer}button.mark:hover{color:var(--lapis)}.mark sup{font-family:var(--mono);font-size:9px;font-weight:400;color:var(--lapis);vertical-align:super;letter-spacing:0}.bar-spacer{flex:1}.chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--rule);background:var(--page);border-radius:999px;font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;transition:border-color .15s,background .15s;white-space:nowrap}.chip:hover:not(:disabled){border-color:var(--ink-soft)}.chip:disabled{opacity:.45;cursor:default}.chip.solid{background:var(--ink);color:var(--page);border-color:var(--ink)}.chip.solid:hover:not(:disabled){background:var(--ink-hover)}.chip[aria-pressed=false]{opacity:.5}.stage{flex:1 1 auto;display:flex;min-height:0}.reader-col{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;padding:26px 24px 0}.sheet{flex:1 1 auto;min-height:0;overflow-y:hidden;background:var(--page);border:1px solid var(--rule);border-bottom:none;border-radius:3px 3px 0 0;padding:52px clamp(24px,6vw,76px) 60px;box-shadow:0 1px #00000008,0 12px 28px -22px #1a1c2180;scroll-behavior:smooth;perspective:1600px;touch-action:pan-y pinch-zoom;overscroll-behavior:contain}.text{max-width:62ch;margin:0 auto;font-family:var(--reading-font);font-size:var(--reading-size);font-weight:400;line-height:var(--reading-leading);color:var(--ink)}.text.turn-next{transform-origin:right center;animation:turn-next .32s cubic-bezier(.22,.61,.36,1)}.text.turn-prev{transform-origin:left center;animation:turn-prev .32s cubic-bezier(.22,.61,.36,1)}@keyframes turn-next{0%{transform:translate(22px) rotateY(16deg);opacity:.5;filter:brightness(.85)}to{transform:translate(0) rotateY(0);opacity:1;filter:brightness(1)}}@keyframes turn-prev{0%{transform:translate(-22px) rotateY(-16deg);opacity:.5;filter:brightness(.85)}to{transform:translate(0) rotateY(0);opacity:1;filter:brightness(1)}}@media (prefers-reduced-motion: reduce){.text.turn-next,.text.turn-prev{animation:none}}.text p{margin:0 0 1.35em}.text p:last-child{margin-bottom:0}.w{position:relative;display:inline;cursor:pointer;border-radius:2px;transition:background .12s}@media (hover: hover){.w:hover{background:var(--lapis-wash)}}.w[data-gloss]:before{content:attr(data-gloss);position:absolute;left:50%;transform:translate(-50%);top:-1.18em;white-space:nowrap;font-family:var(--khmer);font-size:11.5px;font-weight:500;line-height:1;letter-spacing:.01em;color:var(--lapis);pointer-events:none;max-width:16ch;overflow:hidden;text-overflow:ellipsis}.w[data-gloss]:focus-visible:before{max-width:none;overflow:visible;background:var(--page);box-shadow:0 0 0 3px var(--page);border-radius:2px;z-index:6}@media (hover: hover){.w[data-gloss]:hover:before{max-width:none;overflow:visible;background:var(--page);box-shadow:0 0 0 3px var(--page);border-radius:2px;z-index:6}}.w[data-gloss]:hover,.w[data-gloss]:focus-visible,.w.active[data-gloss]{z-index:6}.w.active[data-gloss]:before{max-width:none;overflow:visible;background:var(--page);box-shadow:0 0 0 3px var(--page);border-radius:2px;z-index:6}.w[data-gloss]{background:var(--lapis-wash);box-shadow:inset 0 -1px 0 var(--lapis)}.w.saved[data-gloss]{background:var(--gold-wash);box-shadow:inset 0 -1px 0 var(--gold)}.w.saved[data-gloss]:before{color:var(--gold)}.w.pending:before{content:"···";color:var(--muted);letter-spacing:.1em}.hl{background:var(--hl-bg);box-shadow:inset 0 -1px 0 var(--hl-line);border-radius:1px;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}.hl-yellow{--hl-bg: var(--hl-yellow-bg);--hl-line: var(--hl-yellow-line)}.hl-blue{--hl-bg: var(--hl-blue-bg);--hl-line: var(--hl-blue-line)}.hl-green{--hl-bg: var(--hl-green-bg);--hl-line: var(--hl-green-line)}.hl-pink{--hl-bg: var(--hl-pink-bg);--hl-line: var(--hl-pink-line)}.hl-noted{box-shadow:inset 0 -3px 0 var(--hl-line)}.hl-flash{animation:hl-flash 1.4s ease-out}@keyframes hl-flash{0%,55%{background:var(--hl-line)}to{background:var(--hl-bg)}}@media (prefers-reduced-motion: reduce){.hl-flash{animation:none}}.hl-pin{position:relative;display:inline-block;margin-left:2px;font-family:var(--mono);font-size:10px;line-height:1;vertical-align:super;color:var(--gold);cursor:pointer;-webkit-user-select:none;user-select:none}.hl-pin:hover{color:var(--ink)}.notepeek{max-width:34ch;font-family:var(--body);font-size:12.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;pointer-events:none}.w[data-gloss].hl{box-shadow:inset 0 -1px 0 var(--lapis)}.swatches{display:flex;gap:7px;margin-top:10px}.swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.16);padding:0;transition:transform .12s,box-shadow .12s}.swatch:hover{transform:scale(1.12)}.swatch.on{box-shadow:0 0 0 2px var(--page),0 0 0 3.5px var(--ink-soft)}.sw-yellow{background:var(--hl-yellow-bg)}.sw-blue{background:var(--hl-blue-bg)}.sw-green{background:var(--hl-green-bg)}.sw-pink{background:var(--hl-pink-bg)}.note-input{width:100%;margin-top:10px;font:inherit;font-family:var(--body);font-size:13px;line-height:1.5;padding:8px 9px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink);resize:vertical}::selection{background:var(--select)}.dropping .sheet{border-color:var(--lapis);background:var(--drop)}.library{min-height:100%;width:100%;max-width:78ch;margin:0 auto;padding:8px 4px 40px;text-align:left;display:flex;flex-direction:column}.library-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--rule)}.library-head h2{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.03em;color:var(--ink);margin:0;display:flex;align-items:baseline;gap:9px}.library-head .count{font-family:var(--mono);font-weight:400;font-size:12px;color:var(--muted)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:22px 18px}.library .hint{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;margin-top:30px}.library-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;min-height:320px}.library-empty p{font-family:var(--body);font-size:15px;color:var(--ink-soft);margin:0;max-width:30ch;line-height:1.6}.ghost-shelf{display:flex;gap:14px}.ghost-cover{width:74px;aspect-ratio:2 / 3;border:1.5px dashed var(--rule);border-radius:4px;background:none}.ghost-cover:nth-child(1){transform:rotate(-4deg)}.ghost-cover:nth-child(3){transform:rotate(4deg)}.ghost-add{display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:300;color:var(--muted);border-color:var(--lapis);transition:color .15s,background .15s,transform .15s}.ghost-add:hover{color:var(--lapis);background:var(--lapis-wash);transform:scale(1.04)}.book-card{position:relative;display:flex;flex-direction:column}.book-cover{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:2 / 3;width:100%;border:none;border-radius:4px;box-shadow:0 1px #00000014,0 10px 18px -12px #1a1c218c;overflow:hidden;transition:transform .12s,box-shadow .12s}.book-cover:hover{transform:translateY(-2px);box-shadow:0 1px #00000014,0 14px 22px -12px #1a1c2199}.book-cover:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:#00000024}.book-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.book-cover.has-image .book-cover-lang{background:var(--scrim);color:var(--ink);border-radius:3px;padding:1px 4px;opacity:1}.book-cover.has-image .book-cover-progress{background:#00000059}.book-cover.has-image .book-cover-progress span{background:#fff;opacity:1}.book-cover-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--scrim);color:var(--ink);font-family:var(--mono);font-size:10.5px}.book-cover-glyph{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.03em;opacity:.92}.book-cover-lang{position:absolute;top:8px;left:12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;opacity:.75;z-index:1}.book-cover-progress{position:absolute;left:7px;right:0;bottom:0;height:3px;background:#00000024;z-index:1}.book-cover-progress span{display:block;height:100%;background:currentColor;opacity:.85}.book-title{background:none;border:none;padding:0;margin-top:9px;text-align:left;font-family:var(--body);font-size:13.5px;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-title:hover{color:var(--lapis)}.book-meta{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:3px}.book-act{position:absolute;top:6px;right:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--scrim);color:var(--ink-soft);font-size:13px;line-height:1;padding:0;opacity:0;transition:opacity .12s}.book-act:disabled{opacity:.5;cursor:default}.book-card:hover .book-act,.book-card:focus-within .book-act{opacity:1}@media (hover: none){.book-act{opacity:.8}}.book-act:hover:not(:disabled){color:var(--ink);background:var(--page)}.bookmenu{position:fixed;z-index:70;min-width:170px;padding:5px;background:var(--page);border:1px solid var(--rule);border-radius:6px;box-shadow:0 16px 36px -18px #0000008c}.bookmenu button{display:block;width:100%;text-align:left;background:none;border:none;border-radius:4px;padding:8px 10px;font-family:var(--mono);font-size:11.5px;color:var(--ink)}.bookmenu button:hover{background:var(--paper)}.bookmenu button.danger{color:var(--danger)}.bookmenu-rule{height:1px;margin:4px 6px;background:var(--rule)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000059}.confirm{width:100%;max-width:380px;background:var(--page);border:1px solid var(--ink);border-radius:6px;padding:20px 22px 18px;box-shadow:0 24px 60px -24px #000000b3}.confirm h3{font-family:var(--display);font-size:16px;font-weight:700;margin:0 0 8px;color:var(--ink)}.confirm p{font-family:var(--body);font-size:14px;line-height:1.6;color:var(--ink-soft);margin:0 0 18px}.confirm .act{display:flex;justify-content:flex-end;gap:8px}.chip.solid.danger{background:var(--danger);border-color:var(--danger);color:#fff}.chip.solid.danger:hover:not(:disabled){filter:brightness(.92)}.pager{flex:0 0 auto;display:flex;align-items:center;gap:14px;height:46px;padding:0 clamp(16px,4vw,28px);background:var(--page);border:1px solid var(--rule);border-radius:0 0 3px 3px;font-family:var(--mono);font-size:11.5px;color:var(--ink-soft)}.track{flex:1;height:2px;background:var(--rule);position:relative;border-radius:2px}.track i{position:absolute;inset:0 auto 0 0;background:var(--lapis);border-radius:2px;transition:width .25s}.pager .turn{flex:0 0 auto;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--rule);border-radius:50%;background:var(--paper);color:var(--ink-soft);font-size:18px;line-height:1;transition:border-color .12s,color .12s,background .12s}.pager .turn:disabled{opacity:.28;cursor:default}.pager .turn:not(:disabled):active{background:var(--select);border-color:var(--ink-soft);color:var(--ink)}.pageno{flex:0 0 auto;font-variant-numeric:tabular-nums}.doctitle{max-width:26ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.spacer-b{height:24px;height:calc(24px + env(safe-area-inset-bottom));flex:0 0 auto}.margin-scrim{display:none;position:fixed;top:54px;right:0;bottom:0;left:0;z-index:49;border:none;padding:0;background:#1a1c2147;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.margin{flex:0 0 292px;border-left:1px solid var(--rule);display:flex;flex-direction:column;min-height:0;background:var(--paper)}@media (min-width: 681px){.margin:not(.open){display:none}}.margin-head{padding:20px 20px 12px;display:flex;align-items:baseline;gap:8px;border-bottom:1px solid var(--rule)}.margin-head h3{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.01em;margin:0;flex:1}.count{font-family:var(--mono);font-size:11px;color:var(--muted)}.margin-close{align-self:center;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:none;color:var(--muted);font-size:17px;line-height:1;flex:0 0 auto}.margin-close:hover{color:var(--ink);background:var(--page)}.margin-tabs{display:flex;gap:2px;padding:8px 14px 0;border-bottom:1px solid var(--rule)}.margin-tabs button{flex:1;background:none;border:none;border-bottom:2px solid transparent;padding:7px 4px 8px;font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--muted)}.margin-tabs button:hover{color:var(--ink-soft)}.margin-tabs button.on{color:var(--ink);border-bottom-color:var(--ink)}.entry .hl-term{background:var(--hl-bg);box-shadow:inset 0 -1px 0 var(--hl-line);border-radius:2px;padding:1px 3px;font-size:13.5px;line-height:1.45}.ctx-link{display:block;background:none;border:none;padding:0;margin-top:5px;text-align:left;font-family:var(--mono);font-size:10px;color:var(--muted)}.ctx-link:hover{color:var(--lapis)}.entry .note-body{font-family:var(--body);font-size:12.5px;line-height:1.55;color:var(--ink-soft);margin-top:6px;padding-left:8px;border-left:2px solid var(--rule)}.margin-list{flex:1 1 auto;overflow-y:auto;padding:6px 0}.entry{padding:11px 20px;border-bottom:1px solid var(--rule);display:flex;gap:10px;align-items:flex-start}.entry:hover{background:var(--page)}.entry .txt{flex:1;min-width:0}.entry .term{font-family:var(--body);font-size:15px;line-height:1.3;display:block;cursor:pointer;background:none;border:none;padding:0;text-align:left;color:inherit}.entry .term:hover{color:var(--lapis)}.entry .tr{font-family:var(--khmer);font-size:12.5px;color:var(--lapis);line-height:1.5;display:block;margin-top:2px}.entry .ctx{font-family:var(--body);font-style:italic;font-size:12px;color:var(--muted);line-height:1.5;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.entry .del{background:none;border:none;color:var(--muted);font-size:15px;line-height:1;padding:2px 3px;border-radius:4px;flex:0 0 auto}.entry .del:hover{color:var(--danger);background:var(--page)}.margin-empty{padding:30px 22px;font-size:13.5px;line-height:1.7;color:var(--muted)}.margin-empty b{color:var(--ink-soft);font-weight:400;font-style:italic}.margin-foot{flex:0 0 auto;border-top:1px solid var(--rule);padding:12px 16px;display:flex;gap:8px}.margin-foot .chip{flex:1;justify-content:center}.card{position:fixed;z-index:60;max-width:310px;background:var(--page);border:1px solid var(--ink);border-radius:5px;padding:13px 15px;box-shadow:0 14px 34px -16px #1a1c218c}.card-close{position:absolute;top:-11px;right:-11px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:50%;background:var(--page);color:var(--ink);font-size:15px;line-height:1;padding:0;box-shadow:0 3px 8px -4px #1a1c2199}.card-close:hover{background:var(--ink);color:var(--page)}.card .src{font-size:14.5px;line-height:1.5;color:var(--ink-soft);font-style:italic}.card .out{font-family:var(--khmer);font-size:15px;line-height:1.7;color:var(--lapis);margin-top:8px;padding-top:8px;border-top:1px solid var(--rule)}.card .out-failed{font-family:var(--mono);font-size:11px;color:var(--muted)}.card .act{margin-top:11px;display:flex;gap:7px}.card .act .chip{height:27px;font-size:10.5px;padding:0 10px}.settings{position:fixed;z-index:70;top:64px;right:max(16px,env(safe-area-inset-right));width:272px;max-height:min(78dvh,620px);overflow-y:auto;overscroll-behavior:contain;background:var(--page);border:1px solid var(--ink);border-radius:6px;padding:14px 16px 12px;box-shadow:0 18px 40px -18px #1a1c218c}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}.settings-row+.settings-row{border-top:1px solid var(--rule)}.settings-label{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--ink-soft)}.stepper{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--rule);border-radius:999px;background:var(--paper)}.stepper button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:none;color:var(--ink);font-size:17px;line-height:1}.stepper button:disabled{opacity:.3;cursor:default}.stepper button:not(:disabled):active{background:var(--select)}.stepper-value{min-width:54px;text-align:center;font-family:var(--mono);font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.settings-themes,.settings-fonts{flex-direction:column;align-items:stretch;gap:9px}.font-picker{display:flex;flex-direction:column;gap:5px}.font-picker button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 11px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink-soft);text-align:left;transition:border-color .12s,background .12s,color .12s}.font-picker button.on{border-color:var(--ink);background:var(--page);color:var(--ink)}.font-picker .font-name{font-size:15px;line-height:1.25}.font-picker .font-note{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;color:var(--muted)}.font-picker button.on .font-note{color:var(--ink-soft)}.theme-picker{display:flex;gap:6px}.theme-picker button{flex:1;height:32px;padding:0;border:1px solid var(--rule);border-radius:999px;background:var(--paper);font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink-soft);transition:border-color .12s,background .12s,color .12s}.theme-picker button.on{border-color:var(--ink);background:var(--ink);color:var(--page)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,14px);background:var(--ink);color:var(--page);padding:9px 15px;border-radius:6px;font-family:var(--mono);font-size:11.5px;z-index:80;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:80vw;text-align:center}.toast.on{opacity:1;transform:translate(-50%)}.auth{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:24px}.auth-box{width:100%;max-width:380px;background:var(--page);border:1px solid var(--rule);border-radius:3px;padding:34px 32px;box-shadow:0 12px 28px -22px #1a1c2180;text-align:center}.auth-box .mark{font-size:26px;display:inline-block;margin:0 0 6px}.auth-box p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0 0 20px}.auth-box input{width:100%;font:inherit;font-family:var(--mono);font-size:12.5px;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink);margin-bottom:10px}.auth-box .chip{width:100%;justify-content:center;height:36px}.auth-password{position:relative}.auth-password input{padding-right:36px}.auth-eye{position:absolute;top:0;right:2px;bottom:10px;width:30px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer}.auth-eye:hover{color:var(--ink-soft)}.auth-note{font-family:var(--mono);font-size:11px;line-height:1.6;color:var(--muted);margin-top:14px}.auth-note.bad{color:var(--danger)}.auth-switch{display:block;width:100%;margin-top:12px;padding:0;border:none;background:none;font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:underline;cursor:pointer}.auth-switch:hover{color:var(--ink-soft)}.boot{flex:1;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11.5px;color:var(--muted)}@media (min-width: 681px) and (max-width: 1194px){.margin{flex-basis:248px}.reader-col{padding:20px 16px 0}.sheet{padding:40px clamp(18px,4vw,44px) 52px}.bar{gap:12px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.library-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.doctitle{max-width:18ch}}@media (min-width: 681px) and (max-width: 834px){.margin:not(.open){display:flex}.margin{position:fixed;inset:54px 0 0 auto;width:min(344px,82vw);z-index:50;border-left:1px solid var(--ink);transform:translate(100%);transition:transform .25s;box-shadow:-18px 0 40px -26px #00000080;padding-right:env(safe-area-inset-right)}.margin.open{transform:translate(0)}.margin-scrim{display:block}}@media (max-width: 680px){.margin{position:fixed;inset:auto 0 0 0;height:min(62dvh,520px);z-index:50;border-left:none;border-top:1px solid var(--ink);border-radius:12px 12px 0 0;transform:translateY(100%);transition:transform .25s;box-shadow:0 -12px 30px -20px #0006;padding-bottom:env(safe-area-inset-bottom)}.margin.open{transform:translateY(0)}.margin:before{content:"";position:absolute;top:7px;left:50%;transform:translate(-50%);width:38px;height:4px;border-radius:2px;background:var(--rule)}.margin-head{padding-top:20px}.margin-close{transform:rotate(90deg)}.margin-scrim{display:block}.reader-col{padding:14px 12px 0}.sheet{padding:30px 18px 40px}.bar{gap:10px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bar::-webkit-scrollbar{display:none}.bar .chip,.bar .mark{flex:0 0 auto}.doctitle{display:none}.pager{gap:10px;padding:0 12px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:18px 14px}.library-head h2{font-size:19px}.card{max-width:min(310px,calc(100vw - 24px))}.settings{top:auto;right:0;bottom:0;left:0;width:auto;border-radius:12px 12px 0 0;padding:16px 18px calc(14px + env(safe-area-inset-bottom))}.settings .card-close{top:-15px;right:14px}}@media (hover: none){.w:active{background:var(--lapis-wash)}button.mark:hover{color:var(--ink)}.chip:hover:not(:disabled){border-color:var(--rule)}.chip.solid:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}.chip:active:not(:disabled){border-color:var(--ink-soft);background:var(--select)}.chip.solid:active:not(:disabled){background:var(--ink-hover);color:var(--page)}.book-cover:hover{transform:none;box-shadow:0 1px #00000014,0 10px 18px -12px #1a1c218c}.book-cover:active{transform:scale(.97)}.book-title:hover{color:var(--ink)}.book-title:active{color:var(--lapis)}.book-del:hover{color:var(--ink-soft);background:var(--scrim)}.book-del:active{color:var(--danger);background:var(--page)}.ghost-add:hover{color:var(--muted);background:none;transform:none}.ghost-add:active{color:var(--lapis);background:var(--lapis-wash)}.swatch:hover{transform:none}.swatch:active{transform:scale(1.14)}.card-close:hover{background:var(--page);color:var(--ink)}.card-close:active{background:var(--ink);color:var(--page)}.entry:hover{background:none}.entry:active{background:var(--page)}.entry .term:hover{color:inherit}.entry .term:active{color:var(--lapis)}.entry .del:hover{color:var(--muted);background:none}.entry .del:active{color:var(--danger);background:var(--page)}.ctx-link:hover{color:var(--muted)}.ctx-link:active{color:var(--lapis)}.margin-close:hover{color:var(--muted);background:none}.margin-close:active{color:var(--ink);background:var(--page)}.margin-tabs button:hover{color:var(--muted)}.margin-tabs button.on{color:var(--ink)}.hl-pin:hover{color:var(--gold)}.hl-pin:active{color:var(--ink)}.auth-eye:hover,.auth-switch:hover{color:var(--muted)}}@media (pointer: coarse){.chip{height:40px;padding:0 15px;font-size:12px}.card .act .chip{height:36px;padding:0 14px;font-size:11.5px}.auth-box .chip{height:46px}.note-input,.auth-box input{font-size:16px}.auth-box input{padding:12px 14px}.auth-password input{padding-right:46px}.auth-eye{width:44px}.auth-switch{padding:12px 0;font-size:12px}.pager{height:56px;gap:12px}.pager .turn{width:44px;height:44px;font-size:23px}.margin-close{width:44px;height:44px;font-size:24px}.margin-tabs button{padding:13px 4px 14px;font-size:12px}.entry{padding:14px 14px 14px 18px}.entry .term{padding:3px 0;font-size:16px}.entry .del{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;font-size:19px}.ctx-link{padding:6px 0;font-size:11px}.book-del{top:5px;right:5px;width:32px;height:32px;font-size:17px}.book-title{padding:4px 0;font-size:14px}.swatches{gap:10px}.swatch{width:30px;height:30px}.card-close{top:-15px;right:-15px;width:34px;height:34px;font-size:19px}.stepper button{width:40px;height:40px;font-size:20px}.theme-picker button{height:42px;font-size:12px}.font-picker button{padding:9px 12px}.font-picker .font-note{font-size:10.5px}.hl-pin:after{content:"";position:absolute;top:-9px;right:-4px;bottom:-9px;left:-4px}}@media (max-height: 480px) and (orientation: landscape){.bar{height:46px}.reader-col{padding:8px 12px 0}.sheet{padding:18px clamp(16px,5vw,40px) 22px}.pager{height:40px}.spacer-b{height:calc(8px + env(safe-area-inset-bottom))}.margin{height:88dvh}.margin-scrim{top:46px}.settings{top:52px;right:max(16px,env(safe-area-inset-right));bottom:auto;left:auto;width:272px;border-radius:6px;padding:14px 16px 12px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}
