:root{color-scheme:light dark;--bg: #0b0f17;--panel: rgba(255, 255, 255, .06);--panel2: rgba(255, 255, 255, .08);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .72);--border: rgba(255, 255, 255, .14);--brand: #7c8cff;--brand2: #9f7cff;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:light){:root{--bg: #f6f7fb;--panel: rgba(0, 0, 0, .04);--panel2: rgba(0, 0, 0, .06);--text: rgba(10, 12, 18, .92);--muted: rgba(10, 12, 18, .7);--border: rgba(10, 12, 18, .14)}}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(1200px 800px at 15% 0%,rgba(124,140,255,.18),transparent 60%),radial-gradient(1000px 700px at 90% 20%,rgba(159,124,255,.16),transparent 55%),var(--bg);color:var(--text)}#app{min-height:100vh}.appShell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 78%,transparent);display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.9rem 1rem}.brandTitle{font-weight:760;letter-spacing:-.02em;font-size:1.05rem}.brandSub{font-size:.92rem;color:var(--muted)}.topbarActions{display:flex;gap:.6rem;align-items:center}.fileButton{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),var(--panel));cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:650}.fileButton input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}button{padding:.55rem .9rem;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,#7c8cff38,#7c8cff1a);color:var(--text);cursor:pointer;font-weight:700}button.secondary{background:linear-gradient(180deg,var(--panel2),var(--panel))}button:disabled{opacity:.5;cursor:not-allowed}.main{width:min(1100px,100%);margin:0 auto;padding:1rem;display:grid;grid-template-columns:1fr;gap:1rem}.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:18px;padding:1rem}.status{font-size:.98rem;color:var(--muted)}.status strong{color:var(--text)}.progress{margin-top:.35rem;font-size:.92rem;color:var(--muted)}.dropzone{margin-top:.9rem;border-radius:18px;border:1px dashed var(--border);padding:1rem;background:color-mix(in srgb,var(--panel2) 70%,transparent);outline:none;cursor:pointer}.dropzone.dragOver{border-color:color-mix(in srgb,var(--brand) 55%,var(--border));box-shadow:0 0 0 6px #7c8cff1f}.dropTitle{font-weight:800;letter-spacing:-.01em}.dropSub{color:var(--muted);margin-top:.2rem}.dropHint{margin-top:.55rem;color:var(--muted);font-size:.92rem}.readerWrap{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:18px;padding:.6rem}.reader{width:min(78ch,100%);margin:0 auto;padding:1.2rem 1rem}.reader h2,.reader h3,.reader h4{margin:1.6rem 0 .65rem;letter-spacing:-.015em}.reader h2{font-size:1.25rem}.reader h3{font-size:1.15rem}.reader h4{font-size:1.05rem}.reader p{margin:0 0 .95rem;font-size:1.05rem;line-height:1.75;color:color-mix(in srgb,var(--text) 96%,transparent)}.reader p.bullet{position:relative;padding-left:1.15rem}.reader p.bullet:before{content:"•";position:absolute;left:0;color:color-mix(in srgb,var(--brand) 60%,var(--muted))}.divider{display:flex;align-items:center;gap:.8rem;margin:1.9rem 0;color:var(--muted);font-size:.9rem}.divider hr{flex:1;border:0;border-top:1px solid var(--border)}.loadingMore{padding:.6rem 0 .2rem;text-align:center;color:var(--muted);font-size:.95rem}.sentinel{height:1px}.endOfBook{padding:1.1rem .6rem 1.2rem;text-align:center;color:var(--muted)}.footer{margin-top:auto;padding:1rem;color:var(--muted);font-size:.92rem}.meta{width:min(1100px,100%);margin:0 auto}.hidden{display:none}
