:root{--book-ink:#143a31;--book-paper:#f7f3e9;--book-card:#fffdf8;--book-muted:#5d7068;--book-line:rgba(20,58,49,.16);--book-accent:#13715a;--book-gold:#b48123;--reader-chrome:#173d34;--reader-panel:#0e2922}
:root[data-theme="dark"]{--book-ink:#edf5ec;--book-paper:#0b1e19;--book-card:#102a23;--book-muted:#b5c9c1;--book-line:rgba(224,242,232,.16);--book-accent:#78d4b7;--book-gold:#f3c75e;--reader-chrome:#153c32;--reader-panel:#071712}
.book-page{margin:0;background:var(--book-paper);color:var(--book-ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.book-shell{max-width:1120px;margin:auto;padding:36px 22px 72px}.book-back,.book-text-link{color:var(--book-accent);font-weight:750;text-decoration:none}.book-hero{max-width:700px;padding:46px 0 28px}.book-kicker,.book-eyebrow{color:var(--book-gold);font-size:.77rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.book-hero h1,.book-detail h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1.05;margin:.14em 0}.book-hero p:not(.book-kicker){color:var(--book-muted);font-size:1.08rem}.book-controls,.book-card,.book-meta,.book-reader{border:1px solid var(--book-line);border-radius:20px;background:var(--book-card)}.book-controls{padding:18px;margin:10px 0 18px}.book-controls label{display:grid;gap:6px;font-weight:700}.book-controls input,.book-controls select{border:1px solid var(--book-line);border-radius:10px;background:transparent;color:inherit;padding:10px 12px;font:inherit}.book-search-label{margin-bottom:12px}.book-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:510px}.book-result-count{color:var(--book-muted);font-size:.9rem}.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.book-card{display:grid;grid-template-columns:126px 1fr;overflow:hidden}.book-cover{min-height:100%;background:linear-gradient(145deg,var(--book-ink),var(--book-accent));display:grid;place-items:center}.book-cover img,.book-detail-cover img{width:100%;height:100%;object-fit:cover}.book-cover-fallback{color:#fff;font:800 1.8rem Georgia,serif}.book-card-copy{padding:18px}.book-card h2{font:700 1.35rem/1.2 Georgia,serif;margin:4px 0}.book-card h2 a{color:inherit;text-decoration:none}.book-card p{margin:8px 0;color:var(--book-muted)}.book-author{font-weight:700!important;color:var(--book-ink)!important}.book-empty{color:var(--book-muted)}
.book-detail{padding-top:28px}.book-reader-intro{display:grid;grid-template-columns:142px minmax(0,1fr);gap:26px;align-items:start;margin:0 0 24px}.book-reader-intro--no-cover{grid-template-columns:minmax(0,1fr);max-width:860px}.book-detail-cover{height:202px;overflow:hidden;border-radius:16px;background:linear-gradient(145deg,var(--book-ink),var(--book-accent));display:grid;place-items:center}.book-reader-intro h1{font-size:clamp(2.35rem,5.1vw,4rem)}.book-native-title{font:1.32rem/1.5 Georgia,serif;margin:8px 0}.book-description{font-size:1.02rem;max-width:70ch;margin:10px 0}.book-meta{display:flex;flex-wrap:wrap;gap:0;margin:16px 0 0;padding:0 14px;border-radius:14px;max-width:700px}.book-meta dt,.book-meta dd{margin:0;padding:9px 10px}.book-meta dt{font-weight:800;color:var(--book-muted)}.book-meta dd{margin-right:16px}.book-reader{padding:0;overflow:hidden;border-radius:18px;box-shadow:0 18px 46px rgba(7,31,23,.12)}.book-reader-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 22px 12px}.book-reader h2{margin:0;font:700 1.65rem Georgia,serif}.book-reader-mode{border:1px solid var(--book-line);border-radius:999px;color:var(--book-accent);font-size:.76rem;font-weight:800;letter-spacing:.08em;padding:5px 9px;text-transform:uppercase}.pdf-toolbar{background:var(--reader-chrome);color:#f8fbf6;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;flex-wrap:wrap}.pdf-toolbar-group{display:flex;align-items:center;gap:6px}.pdf-toolbar button,.pdf-toolbar a,.pdf-search button{appearance:none;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(255,255,255,.08);color:inherit;cursor:pointer;font:700 .86rem/1 system-ui,sans-serif;padding:9px 11px;text-decoration:none}.pdf-toolbar button:hover,.pdf-toolbar a:hover,.pdf-search button:hover{background:rgba(255,255,255,.18)}.pdf-toolbar output{font-variant-numeric:tabular-nums;min-width:44px;text-align:center}.pdf-page-input{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:750;white-space:nowrap}.pdf-page-input input{width:52px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:#0c241e;color:#fff;font:inherit;padding:7px 5px;text-align:center}.pdf-search{display:flex;align-items:center;gap:9px;padding:10px 16px;background:var(--reader-panel);color:#eaf3ee}.pdf-search label{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:750}.pdf-search input{min-width:220px;border:1px solid rgba(255,255,255,.25);border-radius:7px;background:rgba(255,255,255,.08);color:inherit;padding:7px 9px;font:inherit}.pdf-search-status{color:#b9d6c9;font-size:.84rem}.pdf-workspace{display:grid;grid-template-columns:142px minmax(0,1fr);min-height:620px;background:#17211e}.pdf-thumbnails{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:15px 11px;background:#1d2925}.pdf-thumbnails button{appearance:none;border:2px solid transparent;background:transparent;color:#d6e4dd;cursor:pointer;font:700 .75rem/1 system-ui,sans-serif;padding:0 0 5px}.pdf-thumbnails button.is-current{border-color:var(--book-accent);border-radius:4px}.pdf-thumbnails canvas{display:block;width:94px;height:auto;background:#fff;margin:0 auto 6px;box-shadow:0 3px 9px rgba(0,0,0,.3)}.pdf-stage{position:relative;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:24px;background:#28302e;outline:none}.pdf-stage:focus-visible{box-shadow:inset 0 0 0 3px var(--book-accent)}.pdf-stage canvas{display:block;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.35)}.pdf-loading{position:absolute;inset:0;z-index:2;display:grid;place-content:center;gap:10px;text-align:center;color:#eaf3ee;background:linear-gradient(135deg,#153b31,#0c211b)}.pdf-loading[hidden]{display:none}.pdf-loading span{width:28px;height:28px;border:3px solid rgba(255,255,255,.25);border-top-color:#79d7b8;border-radius:50%;margin:auto;animation:book-spin .8s linear infinite}.pdf-loading small{color:#b9d6c9;max-width:310px}.pdf-status{margin:0;padding:10px 16px;color:var(--book-muted);font-size:.84rem;background:var(--book-card)}.has-reader-error .pdf-status{color:#b5463c}@keyframes book-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.book-shell{padding:24px 16px 50px}.book-filter-grid,.book-grid{grid-template-columns:1fr}.book-card{grid-template-columns:100px 1fr}.book-reader-intro{grid-template-columns:1fr;gap:14px}.book-detail-cover{width:112px;height:164px}.book-reader-head{align-items:start}.book-reader-mode{margin-top:3px}.pdf-toolbar{padding:9px;gap:9px}.pdf-toolbar-actions{width:100%;justify-content:flex-end}.pdf-search{align-items:flex-start;flex-wrap:wrap}.pdf-search label{width:100%;display:grid;gap:4px}.pdf-search input{min-width:0;width:100%;box-sizing:border-box}.pdf-workspace{grid-template-columns:1fr;min-height:0}.pdf-thumbnails{order:2;flex-direction:row;min-height:128px;max-height:148px}.pdf-thumbnails button{min-width:74px}.pdf-thumbnails canvas{width:62px}.pdf-stage{min-height:440px;padding:14px 8px}.book-meta{display:grid;grid-template-columns:auto 1fr}.book-meta dt,.book-meta dd{padding:8px}.book-meta dd{margin:0}.book-detail h1{font-size:clamp(2.4rem,14vw,3.5rem)}}
.pdf-workspace{height:clamp(560px,72vh,760px);min-height:0}.pdf-thumbnails{min-height:0;overscroll-behavior:contain;scrollbar-color:var(--book-accent) transparent}.pdf-stage{min-height:0;overscroll-behavior:contain}@media(max-width:760px){.pdf-workspace{height:clamp(500px,68vh,640px)}}
.pdf-highlight{position:absolute;z-index:1;background:rgba(249,201,74,.48);outline:1px solid rgba(128,83,0,.5);border-radius:2px;mix-blend-mode:multiply;pointer-events:none}.pdf-highlight.is-active{background:rgba(89,213,178,.62);outline-color:#0b654e}.pdf-search-results{display:flex;align-items:center;gap:5px;color:#d6e4dd;font-size:.82rem;font-weight:700}.pdf-search-results button{padding:6px 8px;font-size:.78rem}
.book-notes-panel{position:fixed;z-index:20;right:20px;bottom:20px;width:min(380px,calc(100vw - 32px));padding:16px;border:1px solid var(--book-line);border-radius:16px;background:var(--book-card);box-shadow:0 18px 46px rgba(0,0,0,.22)}.book-notes-panel[hidden]{display:none}.book-notes-panel h3{margin:0 0 4px}.book-notes-panel p{margin:0 0 10px;color:var(--book-muted);font-size:.86rem}.book-notes-panel textarea{box-sizing:border-box;width:100%;min-height:150px;border:1px solid var(--book-line);border-radius:10px;background:transparent;color:inherit;font:inherit;padding:10px}.book-notes-actions{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.book-notes-actions button{border:1px solid var(--book-line);border-radius:8px;background:var(--book-ink);color:var(--book-paper);cursor:pointer;font:700 .85rem system-ui;padding:8px 10px}
.book-reader-head{padding:7px 14px 6px}.book-reader-head .book-kicker,.book-reader-mode{display:none}.book-reader h2{font-size:1.12rem;line-height:1.15}.pdf-toolbar{padding:6px 10px}.pdf-toolbar button,.pdf-toolbar a,.pdf-search button{padding:6px 8px;font-size:.8rem}.pdf-page-input input{padding:5px 4px}.pdf-search{padding:6px 10px;min-height:34px}.pdf-search input{padding:5px 8px}
.book-reader.is-sidebar-hidden .pdf-workspace{grid-template-columns:1fr}.book-reader.is-sidebar-hidden .pdf-thumbnails{display:none}.book-reader:fullscreen,.book-reader.is-app-fullscreen{position:fixed;z-index:1000;inset:0;width:100vw;height:100vh;border-radius:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}.book-reader:fullscreen .pdf-workspace,.book-reader.is-app-fullscreen .pdf-workspace{height:auto;min-height:0}.book-reader:fullscreen .pdf-stage,.book-reader.is-app-fullscreen .pdf-stage{min-height:0}@media(max-width:760px){.pdf-sidebar-toggle{display:none}}
.pdf-text-layer{position:absolute;inset:0;z-index:2;user-select:text;pointer-events:auto}.pdf-text-layer span{position:absolute;display:block;transform-origin:left top;color:transparent;white-space:pre;line-height:1;cursor:text}.pdf-text-layer span::selection{background:rgba(96,214,179,.68);color:transparent}.pdf-highlight{z-index:3}
.book-first-page-cover{display:block;width:100%;height:100%;object-fit:contain;background:var(--book-card)}.book-first-page-cover--detail{max-height:202px}
.pdf-stage.is-spread{gap:0;align-items:flex-start;background:linear-gradient(90deg,#252d2a 49.65%,#101614 49.8%,#59615d 50%,#101614 50.2%,#252d2a 50.35%)}.pdf-stage.is-spread canvas{flex:0 0 auto;box-shadow:none}.pdf-stage.is-spread canvas:first-of-type{border-radius:4px 0 0 4px}.pdf-stage.is-spread .pdf-second-canvas{border-radius:0 4px 4px 0}.pdf-stage.is-turning canvas{animation:book-leaf .22s cubic-bezier(.2,.7,.2,1)}@keyframes book-leaf{0%{opacity:.5;transform:perspective(1100px) rotateY(-7deg);transform-origin:left center}100%{opacity:1;transform:none}}
.pdf-stage.is-turning canvas{animation:book-leaf-smooth .42s cubic-bezier(.16,.78,.22,1);will-change:transform,opacity}@keyframes book-leaf-smooth{0%{opacity:.68;transform:perspective(1400px) rotateY(-4deg) translateX(5px);transform-origin:left center}58%{opacity:1;transform:perspective(1400px) rotateY(1deg) translateX(-1px)}100%{opacity:1;transform:none}}.pdf-settings{position:relative}.pdf-settings summary{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border:1px solid rgba(213,236,226,.34);border-radius:8px;background:rgba(255,255,255,.08);color:#f3f8f4;font:700 .82rem/1 system-ui,sans-serif;cursor:pointer;list-style:none}.pdf-settings summary::-webkit-details-marker{display:none}.pdf-settings>div{position:absolute;z-index:20;top:calc(100% + 8px);left:0;display:grid;gap:9px;min-width:220px;padding:11px;border:1px solid rgba(132,222,194,.32);border-radius:10px;background:#0b241d;box-shadow:0 12px 30px rgba(0,0,0,.28);color:#eaf4ee;font:600 .8rem/1.25 system-ui,sans-serif}.pdf-settings label{display:flex;align-items:center;justify-content:space-between;gap:10px}.pdf-settings input{accent-color:#74dcc1}.pdf-settings select{max-width:130px;padding:4px 6px;border:1px solid rgba(213,236,226,.3);border-radius:6px;background:#16382e;color:#f3f8f4;font:inherit}
.book-cover img,.book-detail-cover img{object-fit:var(--cover-fit,cover);object-position:var(--cover-position,50% 50%);transform:scale(var(--cover-zoom,1));transform-origin:var(--cover-position,50% 50%)}
