:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;width:100%;height:100%;margin:0}body{background:var(--bg-200);color:var(--ink)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}html[data-theme]{--bg-200:color-mix(in srgb, var(--ink) 6%, var(--bg-100));--bg-300:color-mix(in srgb, var(--ink) 13%, var(--bg-100));--line:color-mix(in srgb, var(--ink) 16%, var(--bg-100));--ink-soft:color-mix(in srgb, var(--ink) 68%, var(--bg-100));--primary-ink:#fff;--danger:#d33131}html[data-theme=default-light]{--bg-100:#fff;--ink:#171717;--primary:#06c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=default-dark]{--bg-100:#222;--ink:#e0e0e0;--primary:#7be;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=gray-light]{--bg-100:#e0e0e0;--ink:#222;--primary:#48c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=gray-dark]{--bg-100:#444;--ink:#c6c6c6;--primary:#8ce;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=sepia-light]{--bg-100:#f1e8d0;--ink:#5b4636;--primary:#008b8b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=sepia-dark]{--bg-100:#342e25;--ink:#ffd595;--primary:#48d1cc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=grass-light]{--bg-100:#d7dbbd;--ink:#232c16;--primary:#177b4d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=grass-dark]{--bg-100:#333627;--ink:#d8deba;--primary:#a6d608;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=cherry-light]{--bg-100:#f0d1d5;--ink:#4e1609;--primary:#de3838;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=cherry-dark]{--bg-100:#462f32;--ink:#e5c4c8;--primary:#ff646e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=sky-light]{--bg-100:#cedef5;--ink:#262d48;--primary:#2d53e5;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=sky-dark]{--bg-100:#282e47;--ink:#babee1;--primary:#ff646e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=solarized-light]{--bg-100:#fdf6e3;--ink:#586e75;--primary:#268bd2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=solarized-dark]{--bg-100:#002b36;--ink:#93a1a1;--primary:#268bd2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=gruvbox-light]{--bg-100:#fbf1c7;--ink:#3c3836;--primary:#076678;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=gruvbox-dark]{--bg-100:#282828;--ink:#ebdbb2;--primary:#83a598;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=nord-light]{--bg-100:#eceff4;--ink:#2e3440;--primary:#5e81ac;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=nord-dark]{--bg-100:#2e3440;--ink:#d8dee9;--primary:#88c0d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=contrast-light]{--bg-100:#fff;--ink:#000;--primary:#48c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=contrast-dark]{--bg-100:#000;--ink:#fff;--primary:#8ce;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=sunset-light]{--bg-100:#fff7f0;--ink:#423126;--primary:#fe6b64;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=sunset-dark]{--bg-100:#3c2b25;--ink:#f6e1d7;--primary:#ff9c94;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.app{background:var(--bg-200);width:100%;min-width:320px;height:100dvh;color:var(--ink);display:flex;overflow:hidden}.sidebar-overlay{z-index:45;background:#00000080;border:0;padding:0;position:fixed;inset:0}.sidebar{background:var(--bg-200);border-inline-end:1px solid var(--line);-webkit-user-select:none;user-select:none;flex-direction:column;flex:none;width:320px;max-width:85vw;height:100%;min-height:0;display:none}.sidebar.open{display:flex}.sidebar.floating{z-index:46;position:fixed;inset-block:0;inset-inline-start:0;box-shadow:0 18px 50px #00000047}.sidebar-header{flex:none;justify-content:space-between;align-items:center;height:44px;padding-inline:6px 8px;display:flex}.sidebar-brand{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:650;display:flex;overflow:hidden}.sidebar-actions{align-items:center;gap:2px;display:flex}.icon-btn{width:32px;min-width:32px;height:32px;min-height:32px;color:var(--ink);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--bg-300)}.icon-btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 15%, transparent);outline:none}.icon-btn.active,.icon-btn.pinned-on{background:var(--bg-300)}.icon-btn.mobile-only{display:inline-grid}.icon-btn.desktop-only{display:none}@media (width>=1024px){.icon-btn.mobile-only{display:none}.icon-btn.desktop-only{display:inline-grid}}.current-book{border:1px solid var(--line);background:var(--bg-100);border-radius:8px;flex:none;margin:0 12px;padding:12px}.current-book-row{align-items:center;gap:10px;min-width:0;display:flex}.current-book-icon{background:var(--bg-200);width:36px;height:36px;color:var(--ink-soft);border-radius:8px;flex:none;place-items:center;display:inline-grid}.current-book-meta{flex:1;min-width:0}.current-book-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.25;display:block;overflow:hidden}.current-book-sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.5;display:block;overflow:hidden}.progress-pill{border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:700}.sidebar-scroll{flex:1;min-height:0;padding:12px;font-size:14px;overflow-y:auto}@media (width<=768px){.sidebar-scroll{font-size:16px}}.panel+.panel{margin-top:16px}.panel-title{letter-spacing:-.01em;margin:0 0 6px;font-size:18px;font-weight:650}.boxed-list{border:1px solid var(--line);background:var(--bg-100);border-radius:8px;margin-top:8px}.boxed-list-rows>*+*{border-top:1px solid var(--line)}.setting-row{justify-content:space-between;align-items:center;gap:8px;min-height:56px;padding-block:4px;padding-inline:16px;display:flex}.row-label{min-width:0;font-weight:500}.row-hint{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.85em;font-weight:400;display:block;overflow:hidden}.row-control{flex:none;align-items:center;gap:4px;display:flex}.row-control.end{justify-content:flex-end}.book-row{justify-content:space-between;align-items:center;gap:8px;min-height:56px;padding-block:4px;padding-inline:16px;transition:background-color .15s;display:flex}.book-row:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.book-row.active{background:color-mix(in srgb, var(--ink) 8%, transparent)}.book-open{text-align:start;min-width:0;color:var(--ink);background:0 0;border:0;flex:1;padding-block:8px;padding-inline:0}.book-open-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1.3;display:block;overflow:hidden}.book-open-sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.85em;line-height:1.4;display:block;overflow:hidden}.book-open-progress{color:var(--ink-soft);margin-top:2px;font-size:.85em;display:block}.book-row-side{color:var(--ink-soft);flex:none;align-items:center;gap:2px;display:flex}.mini-btn{width:32px;height:32px;color:var(--ink);background:0 0;border:0;border-radius:8px;place-items:center;transition:background-color .15s;display:inline-grid}.mini-btn:hover{background:var(--bg-200)}.mini-btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 15%, transparent);outline:none}.mini-btn.danger{color:var(--danger)}.empty-note{min-height:56px;color:var(--ink-soft);align-items:center;padding-inline:16px;font-size:.85em;display:flex}.list-extension{border:1px solid var(--line);background:var(--bg-100);width:100%;height:44px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:8px;padding-inline:16px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s;display:flex}.list-extension:hover{border-color:var(--bg-300);background:var(--bg-200)}.list-extension:active{background:var(--bg-300)}.list-extension:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 15%, transparent);outline:none}.list-extension-chip{background:var(--bg-200);width:20px;height:20px;color:var(--ink-soft);border-radius:999px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.list-extension:hover .list-extension-chip{background:var(--ink);color:var(--bg-100)}.list-extension-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chrome-select{appearance:none;border:1px solid var(--line);background-color:var(--bg-200);min-width:0;max-width:11rem;height:36px;color:var(--ink);text-align:start;text-align-last:start;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;border-radius:6px;padding-inline:10px 28px;font-size:14px;transition:background-color .15s,border-color .15s;display:block;overflow:hidden}[dir=rtl] .chrome-select{background-position:9px;padding-inline:28px 10px}.chrome-select:hover{background-color:var(--bg-300);border-color:var(--ink-soft)}.chrome-select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 35%, transparent);outline:none}.chrome-select option{background:var(--bg-100);color:var(--ink);text-align:start}.switch{appearance:none;background:var(--bg-300);cursor:pointer;border:0;border-radius:999px;flex:none;width:48px;height:28px;margin:0;transition:background-color .15s;position:relative}.switch:after{content:"";top:3px;background:var(--bg-100);border-radius:999px;width:22px;height:22px;transition:transform .15s;position:absolute;inset-inline-start:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--ink)}.switch:checked:after{transform:translate(20px)}[dir=rtl] .switch:checked:after{transform:translate(-20px)}.font-value{text-align:center;min-width:44px;font-size:14px;font-weight:500}.main-col{background:var(--bg-100);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.header-bar{z-index:10;background:var(--bg-100);flex:none;align-items:center;gap:8px;height:44px;padding-inline:16px;display:flex;position:relative;box-shadow:0 1px 2px #0000000f}.header-start{z-index:1;align-items:center;gap:4px;min-width:0;display:flex}.header-title{pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}@media (width>=640px){.header-title{display:flex}}.header-title span{text-overflow:ellipsis;white-space:nowrap;max-width:50%;font-size:12px;font-weight:650;overflow:hidden}.header-end{z-index:1;align-items:center;gap:4px;margin-inline-start:auto;display:flex}.page-label{color:var(--ink-soft);white-space:nowrap;font-size:12px;font-weight:500;display:none}@media (width>=768px){.page-label{display:inline}}.page-counting{color:var(--ink-soft);letter-spacing:.01em;white-space:nowrap;flex:none;font-size:11px;font-weight:500}.reader-shell{background:var(--bg-100);flex:1;min-height:0;position:relative}.viewer{-webkit-user-select:none;user-select:none;cursor:default;position:absolute;inset:0}.viewer iframe{cursor:default;border:0;outline:0}foliate-view{border:0;width:100%;height:100%;display:block}.cache-viewer{top:0;z-index:-1;opacity:0;pointer-events:none;width:100vw;height:100dvh;position:fixed;inset-inline-start:-200vw;overflow:hidden}.page-counter-viewer{top:0;opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;inset-inline-start:-200vw;overflow:hidden}.page-counter-viewer foliate-view{width:100%;height:100%;display:block}.page-zone{z-index:6;color:#0000;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:default;background:0 0;border:0;position:absolute;top:0;bottom:0}.page-zone:focus,.page-zone:active{outline:0}.page-zone.left{width:50%;inset-inline-start:0}.page-zone.right{width:50%;inset-inline-end:0}.empty-state,.loading-state,.error-state{z-index:7;text-align:center;background:var(--bg-100);align-content:center;place-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.empty-state h2{margin:0;font-size:22px}.empty-state p{max-width:440px;color:var(--ink-soft);margin:0}.empty-state code{overflow-wrap:anywhere;border:1px solid var(--line);background:var(--bg-200);max-width:100%;color:var(--primary);border-radius:6px;padding:8px 10px;font-size:13px}.cta-button{border:1px solid var(--primary);background:var(--primary);min-height:44px;color:var(--primary-ink);border-radius:8px;padding-inline:20px;font-weight:700;transition:opacity .15s}.cta-button:hover{opacity:.9}.cta-button:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 40%, transparent);outline:none}.loading-state{color:var(--ink-soft)}.error-state{color:var(--danger);font-weight:700}.footer-bar{border-top:1px solid var(--line);background:var(--bg-100);flex:none;align-items:center;gap:12px;height:44px;padding-inline:16px;display:flex}.progress-range{min-width:0;accent-color:var(--primary);cursor:pointer;flex:1}.progress-range:disabled{cursor:not-allowed;opacity:.45}.toast-error{inset-inline-end:16px;z-index:60;border:1px solid var(--danger);background:var(--bg-100);max-width:min(560px,100vw - 32px);color:var(--danger);overflow-wrap:anywhere;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:700;position:fixed;bottom:60px;box-shadow:0 12px 32px #0003}.modal-layer{z-index:70;background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-box{background:var(--bg-100);border-radius:16px;width:min(520px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;box-shadow:0 22px 60px #00000040}@media (width<=640px){.modal-layer{padding:12px}.modal-box{border-radius:16px 16px 0 0;align-self:end}}.modal-header{justify-content:center;align-items:center;min-height:52px;padding-inline:16px;display:flex;position:relative}.modal-header h2{margin:0;font-size:16px;font-weight:650}.modal-close{background:var(--bg-300);position:absolute;inset-inline-end:8px}.modal-body{padding:4px 16px 16px}.modal-body h3{letter-spacing:-.01em;margin:8px 0 6px;font-size:18px;font-weight:650}.modal-body .muted{color:var(--ink-soft);margin:0 0 4px;font-size:14px;line-height:1.5}.field-label{color:var(--ink-soft);margin:16px 0 8px;font-size:13px;font-weight:700;display:block}.text-input{border:1px solid var(--line);background:var(--bg-200);width:100%;height:44px;color:var(--ink);border-radius:8px;padding-inline:12px;font-size:14px}.text-input:focus{border-color:var(--primary);outline:none}.dialog-error{border:1px solid var(--danger);background:var(--bg-200);color:var(--danger);overflow-wrap:anywhere;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px;font-weight:700}.contrast-button{border:1px solid var(--ink);background:var(--ink);width:100%;height:44px;color:var(--bg-100);border-radius:8px;margin-top:16px;font-weight:700;transition:opacity .15s}.contrast-button:hover{opacity:.9}.contrast-button:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 25%, transparent);outline:none}.dialog-divider{color:var(--ink-soft);text-transform:uppercase;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:16px 0;font-size:12px;font-weight:800;display:grid}.dialog-divider:before,.dialog-divider:after{content:"";background:var(--line);height:1px}.upload-label{border:1px solid var(--ink);background:var(--ink);min-height:44px;color:var(--bg-100);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:9px;font-weight:700;display:flex}.upload-label.disabled{cursor:not-allowed;opacity:.62}.file-input{display:none}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}.icon-btn,.mini-btn,.book-row,.list-extension,.chrome-select,.switch,.cta-button,.contrast-button{transition:none}}
