:root{--bg:#111315;--panel:#191c20;--panel2:#22262b;--text:#f5f6f7;--muted:#9ca3aa;--accent:#e4a11b}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text)}
button{font:inherit}
.flipbook-app{width:100%;height:100dvh;min-height:480px;display:flex;flex-direction:column;background:linear-gradient(180deg,#0f1113,#191c20)}
.topbar{height:62px;flex:0 0 62px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #2a2e33;background:rgba(15,17,19,.96);z-index:20}
.brand{display:flex;flex-direction:column;gap:2px;min-width:0}.brand strong{font-size:15px;letter-spacing:.1px}.brand span{font-size:11px;color:var(--muted)}
.tools{display:flex;align-items:center;gap:5px}.tool,.bottombar button,.thumb-head button{border:0;background:var(--panel2);color:var(--text);border-radius:7px;cursor:pointer}.tool{width:36px;height:36px;font-size:19px}.tool:hover,.bottombar button:hover,.thumb-head button:hover{background:#343a40}.zoom-value{width:52px;text-align:center;font-size:12px;color:var(--muted)}
.viewer{position:relative;flex:1;min-height:0;overflow:hidden;background:radial-gradient(ellipse at center,#3a3e43 0,#24282d 42%,#151719 78%);touch-action:none}
.viewer:before,.viewer:after{content:"";position:absolute;left:0;right:0;height:1px;background:rgba(255,255,255,.05);z-index:1}.viewer:before{top:10px}.viewer:after{bottom:10px}
.stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.book-wrap{position:relative;transform-origin:center center;transition:transform .16s ease;will-change:transform}.book{position:relative;transform-style:preserve-3d;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));}
.page{position:absolute;top:0;width:50%;height:100%;background:#fff;overflow:hidden;backface-visibility:hidden;transform-style:preserve-3d}.page img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}.page.left{left:0;transform-origin:right center}.page.right{right:0;transform-origin:left center}.page:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 14px rgba(0,0,0,.08)}
.spine{position:absolute;left:50%;top:0;width:1px;height:100%;background:rgba(0,0,0,.16);transform:translateX(-50%);z-index:8;pointer-events:none}.mobile-page{left:0!important;right:auto!important;width:100%!important;height:100%!important;transform-origin:left center!important}
.flip-next{animation:flipNext .65s cubic-bezier(.2,.75,.25,1) forwards;z-index:10}.flip-prev{animation:flipPrev .65s cubic-bezier(.2,.75,.25,1) forwards;z-index:10}
@keyframes flipNext{from{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flipPrev{from{transform:rotateY(-180deg)}to{transform:rotateY(0)}}
.nav{position:absolute;top:50%;transform:translateY(-50%);z-index:15;width:48px;height:72px;border:0;border-radius:10px;background:rgba(12,14,16,.65);color:#fff;font-size:45px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.25);backdrop-filter:blur(5px)}.nav:hover{background:rgba(12,14,16,.9)}.nav:disabled{opacity:.25;cursor:default}.nav-prev{left:16px}.nav-next{right:16px}
.loading{position:absolute;inset:0;display:grid;place-items:center;color:#cbd0d4;font-size:13px;background:rgba(17,19,21,.28);z-index:12;pointer-events:none;transition:opacity .25s}.loading.done{opacity:0}
.bottombar{height:52px;flex:0 0 52px;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(15,17,19,.98);border-top:1px solid #2a2e33;z-index:20}.bottombar button{width:32px;height:32px;font-size:15px}.page-indicator{font-size:12px;min-width:65px;text-align:center}.page-indicator b{font-size:13px}.separator{width:1px;height:20px;background:#34383d;margin:0 5px}.hint{font-size:10px;color:var(--muted)}
.thumb-panel{position:absolute;top:62px;right:0;bottom:52px;width:min(360px,88vw);background:rgba(20,23,26,.98);border-left:1px solid #34383d;box-shadow:-15px 0 35px rgba(0,0,0,.35);z-index:30;transform:translateX(105%);transition:transform .22s ease}.thumb-panel.open{transform:translateX(0)}.thumb-head{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #30343a}.thumb-head button{width:30px;height:30px;font-size:22px}.thumbs{height:calc(100% - 52px);overflow:auto;padding:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.thumb{position:relative;border:2px solid transparent;background:#fff;padding:0;cursor:pointer;border-radius:4px;overflow:hidden;box-shadow:0 5px 12px rgba(0,0,0,.25)}.thumb.active{border-color:var(--accent)}.thumb img{display:block;width:100%;height:auto}.thumb span{position:absolute;right:4px;bottom:4px;padding:1px 4px;border-radius:3px;background:rgba(0,0,0,.65);color:#fff;font-size:9px}
@media(max-width:760px){.topbar{height:52px;flex-basis:52px;padding:0 10px}.brand strong{font-size:13px}.brand span{font-size:10px}.tool{width:34px;height:34px}.zoom-value{display:none}.nav{width:38px;height:58px;font-size:36px}.nav-prev{left:7px}.nav-next{right:7px}.bottombar{height:46px;flex-basis:46px}.hint,.separator{display:none}.thumb-panel{top:52px;bottom:46px;width:100%}.thumbs{grid-template-columns:repeat(4,1fr)}}
@media(prefers-reduced-motion:reduce){.book-wrap,.thumb-panel,.loading{transition:none}.flip-next,.flip-prev{animation-duration:.01ms}}
